home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1993 / Internet Info CD-ROM (Walnut Creek) (1993).iso / inet / internet-drafts / draft-ietf-mospf-multicast-02.txt < prev    next >
Text File  |  1993-03-03  |  265KB  |  5,602 lines

  1.  
  2.  
  3.  
  4.  
  5. Network Working Group                                             J. Moy
  6. Internet Draft                                             Proteon, Inc.
  7. Expiration date: February 1993                            September 1992
  8.  
  9.  
  10.                       Multicast Extensions to OSPF
  11.  
  12.  
  13.  
  14. Status of this Memo
  15.  
  16.     This document is an Internet  Draft.  Internet  Drafts  are  working
  17.     documents  of the Internet Engineering Task Force (IETF), its Areas,
  18.     and its Working Groups. Note that other groups may  also  distribute
  19.     working  documents  as  Internet  Drafts.  Internet Drafts are draft
  20.     documents valid for a maximum of six months. Internet Drafts may  be
  21.     updated,  replaced,  or obsoleted by other documents at any time. It
  22.     is not appropriate to use Internet Drafts as reference  material  or
  23.     to  cite  them  other  than as a ``working draft'' or ``work in pro-
  24.     gress.'' Please check the 1id-abstracts.txt listing contained in the
  25.     internet-drafts  Shadow  Directories  on  nic.ddn.mil, nnsc.nsf.net,
  26.     nic.nordu.net,  ftp.nisc.sri.com,  or  munnari.oz.au  to  learn  the
  27.     current status of any Internet Draft.
  28.  
  29. Abstract
  30.  
  31.     This memo documents enhancements to the OSPF protocol  enabling  the
  32.     routing of IP multicast datagrams. In this proposal, an IP multicast
  33.     packet is routed based both on the packet's source and its multicast
  34.     destination (commonly referred to as source/destination routing). As
  35.     it is routed, the multicast packet follows a shortest path  to  each
  36.     multicast  destination. During packet forwarding, any commonality of
  37.     paths is exploited; when multiple hosts belong to a single multicast
  38.     group,  a multicast packet will be replicated only when the paths to
  39.     the separate hosts diverge.
  40.  
  41.     OSPF, a link-state  based  routing  protocol,  provides  a  database
  42.     describing  the  Autonomous System's topology. A new OSPF link state
  43.     advertisement is added describing the location of multicast destina-
  44.     tions.  A  multicast  packet's path is then calculated by building a
  45.     pruned shortest-path tree rooted at the packet's  IP  source.  These
  46.     trees  are  built  on demand, and the results of the calculation are
  47.     cached for use by subsequent packets.
  48.  
  49.     The multicast extensions are built on top of  OSPF  version  2.  The
  50.     extensions  have  been implemented so that a multicast routing capa-
  51.     bility can be introduced piecemeal into an OSPF  version  2  routing
  52.     domain.  Some  of  the  OSPF version 2 routers may run the multicast
  53.  
  54.  
  55.  
  56. [Moy]                                                           [Page 1]
  57.  
  58. Internet Draft        Multicast Extensions to OSPF        September 1992
  59.  
  60.  
  61.     extensions, while others may continue to be restricted to  the  for-
  62.     warding of regular IP traffic (unicasts).
  63.  
  64.     Please send comments to mospf@gated.cornell.edu.
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112. [Moy]                                                           [Page 2]
  113.  
  114. Internet Draft        Multicast Extensions to OSPF        September 1992
  115.  
  116.  
  117. Table of Contents
  118.  
  119.     1       Introduction ........................................... 5
  120.     1.1     Terminology ............................................ 6
  121.     1.2     Acknowledgments ........................................ 7
  122.     2       Multicast routing in MOSPF ............................. 7
  123.     2.1     Routing characteristics ................................ 7
  124.     2.2     Sample path of a multicast datagram .................... 9
  125.     2.3     MOSPF forwarding mechanism ............................ 11
  126.     2.3.1   IGMP interface: the local group database .............. 11
  127.     2.3.2   A datagram's shortest-path tree ....................... 14
  128.     2.3.3   Support for Non-broadcast networks .................... 16
  129.     2.3.4   Details concerning forwarding cache entries ........... 17
  130.     3       Inter-area multicasting ............................... 19
  131.     3.1      Extent of group-membership-LSAs ...................... 20
  132.     3.2      Building inter-area datagram shortest-path trees ..... 23
  133.     4       Inter-AS multicasting ................................. 28
  134.     4.1     Building inter-AS datagram shortest-path trees ........ 29
  135.     4.2     Stub area behavior .................................... 30
  136.     5       Modelling internal group membership ................... 31
  137.     6       Additional capabilities ............................... 34
  138.     6.1     Mixing with non-multicast routers ..................... 34
  139.     6.2     TOS-based multicast ................................... 35
  140.     6.3     Assigning multiple IP networks to a physical network .. 36
  141.     6.4     Networks on Autonomous System boundaries .............. 37
  142.     6.5     Recommended system configuration ...................... 39
  143.     7       Basic implementation requirements ..................... 40
  144.     8       Protocol data structures .............................. 40
  145.     8.1     Additions to the OSPF area structure .................. 41
  146.     8.2     Additions to the OSPF interface structure ............. 42
  147.     8.3     Additions to the OSPF neighbor structure .............. 43
  148.     8.4     The local group database .............................. 43
  149.     8.5     The forwarding cache .................................. 44
  150.     9       Interaction with the IGMP protocol .................... 45
  151.     9.1     Sending IGMP Host Membership Queries .................. 45
  152.     9.2     Receiving IGMP Host Membership Reports ................ 46
  153.     9.3     Aging local group database entries .................... 47
  154.     9.4     Receiving IGMP Host Membership Queries ................ 47
  155.     10      Group-membership-LSAs ................................. 48
  156.     10.1    Constructing group-membership-LSAs .................... 49
  157.     10.2    Flooding group-membership-LSAs ........................ 51
  158.     11      Detailed description of multicast datagram forwarding . 52
  159.     11.1    Associating a MOSPF interface with a received datagram  54
  160.     11.2    Locating the source network ........................... 55
  161.     11.3    Forwarding locally originated multicasts .............. 56
  162.     12      Construction of forwarding cache entries .............. 57
  163.     12.1    The Vertex data structure ............................. 58
  164.     12.2    The SPF calculation ................................... 59
  165.  
  166.  
  167.  
  168. [Moy]                                                           [Page 3]
  169.  
  170. Internet Draft        Multicast Extensions to OSPF        September 1992
  171.  
  172.  
  173.     12.2.1  Candidate list Initialization: Case SourceIntraArea ... 64
  174.     12.2.2  Candidate list Initialization: Case SourceInterArea1 .. 65
  175.     12.2.3  Candidate list Initialization: Case SourceInterArea2 .. 65
  176.     12.2.4  Candidate list Initialization: Case SourceExternal .... 66
  177.     12.2.5  Candidate list Initialization: Case SourceStubExternal  69
  178.     12.2.6  Processing labelled vertices .......................... 70
  179.     12.2.7  Merging datagram shortest-path trees .................. 70
  180.     12.2.8  TOS considerations .................................... 72
  181.     12.2.9  Comparison to the unicast SPF calculation ............. 73
  182.     12.3    Adding local database entries to the forwarding cache   74
  183.     13      Maintaining the forwarding cache ...................... 75
  184.     14      Other additions to the OSPF specification ............. 76
  185.     14.1    The Designated Router ................................. 76
  186.     14.2    Sending Hello packets ................................. 77
  187.     14.3    The Neighbor state machine ............................ 77
  188.     14.4    Receiving Database Description packets ................ 77
  189.     14.5    Sending Database Description packets .................. 78
  190.     14.6    Originating Router-LSAs ............................... 78
  191.     14.7    Originating Network-LSAs .............................. 78
  192.     14.8    Originating Summary-LSAs .............................. 79
  193.     14.9    Originating AS external-LSAs .......................... 79
  194.     14.10   Next step in the flooding procedure ................... 80
  195.     14.11   Virtual links ......................................... 80
  196.     15      References ............................................ 81
  197.     A       Data Formats .......................................... 86
  198.     A.1     The options field ..................................... 87
  199.     A.2     Router-LSA ............................................ 89
  200.     A.3     Group-membership-LSA .................................. 91
  201.     B       Configurable Constants ................................ 93
  202.     B.1     Global parameters ..................................... 93
  203.     B.2     Router interface parameters ........................... 93
  204.     C       Sample datagram shortest-path trees ................... 95
  205.     C.1     An intra-area tree .................................... 96
  206.     C.2     The effect of areas ................................... 98
  207.     C.3     The effect of virtual links ........................... 99
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224. [Moy]                                                           [Page 4]
  225.  
  226. Internet Draft        Multicast Extensions to OSPF        September 1992
  227.  
  228.  
  229. 1.  Introduction
  230.  
  231.     This memo documents enhancements to OSPF version  2  to  support  IP
  232.     multicast  routing.  The enhancements have been added in a backward-
  233.     compatible fashion; routers running  the  multicast  additions  will
  234.     interoperate with non-multicast OSPF routers when forwarding regular
  235.     (unicast) IP data traffic. The protocol resulting from the  addition
  236.     of  the  multicast enhancements to OSPF is herein referred to as the
  237.     MOSPF protocol.
  238.  
  239.     IP multicasting is an extension of  LAN  multicasting  to  a  TCP/IP
  240.     internet.  Multicasting  support for TCP/IP hosts has been specified
  241.     in [RFC 1112]. In that document, multicast groups are represented by
  242.     IP  class D addresses. Individual TCP/IP hosts join (and leave) mul-
  243.     ticast groups through the Internet Group Management Protocol  (IGMP,
  244.     also specified in [RFC 1112]). A host need not be a member of a mul-
  245.     ticast group in order to send  datagrams  to  the  group.  Multicast
  246.     datagrams  are to be delivered to each member of the multicast group
  247.     with the same "best-effort" delivery accorded regular  (unicast)  IP
  248.     data traffic.
  249.  
  250.     MOSPF provides the ability to forward multicast datagrams  from  one
  251.     IP  network  to another (i.e., through internet routers). MOSPF for-
  252.     wards a multicast datagram on  the  basis  of  both  the  datagram's
  253.     source  and destination (this is sometimes called source/destination
  254.     routing). The OSPF link state database provides a complete  descrip-
  255.     tion  of  the  Autonomous System's topology. By adding a new type of
  256.     link state advertisement, the group-membership-LSA, the location  of
  257.     all  multicast group members is pinpointed in the database. The path
  258.     of a multicast  datagram  can  then  be  calculated  by  building  a
  259.     shortest-path tree rooted at the datagram's source. All branches not
  260.     containing multicast members are pruned from the tree. These  pruned
  261.     shortest-path  trees  are initially built when the first datagram is
  262.     received (i.e., on demand).  The results of the shortest path calcu-
  263.     lation  are  then  cached for use by subsequent datagrams having the
  264.     same source and destination.
  265.  
  266.     OSPF allows an Autonomous System to be split  into  areas.  However,
  267.     when  this  is  done  complete  knowledge of the Autonomous System's
  268.     topology is lost. When forwarding  multicasts  between  areas,  only
  269.     incomplete  shortest-path  trees can be built. This may lead to some
  270.     inefficiency in routing. An  analogous  situation  exists  when  the
  271.     source  of the multicast datagram lies in another Autonomous System.
  272.     In both cases (i.e., the source of the datagram belongs  to  a  dif-
  273.     ferent OSPF area, or to a different Autonomous system) the neighbor-
  274.     hood immediately surrounding the source is unknown. In  these  cases
  275.     the  source's  neighborhood  is  approximated  by  OSPF summary link
  276.     advertisements  or  by  OSPF   AS   external   link   advertisements
  277.  
  278.  
  279.  
  280. [Moy]                                                           [Page 5]
  281.  
  282. Internet Draft        Multicast Extensions to OSPF        September 1992
  283.  
  284.  
  285.     respectively.
  286.  
  287.     Routers running MOSPF can  be  intermixed  with  non-multicast  OSPF
  288.     routers. Both types of routers can interoperate when forwarding reg-
  289.     ular (unicast) IP data traffic. Obviously, the range  of  IP  multi-
  290.     casts is limited by the number of MOSPF routers present in the Auto-
  291.     nomous System (and their interconnection, if  any).  An  ability  to
  292.     "tunnel"  multicast  datagrams  through non-multicast routers is not
  293.     provided. In MOSPF, just as in the  base  OSPF  protocol,  datagrams
  294.     (multicast  or  unicast)  are routed "as is" -- they are not further
  295.     encapsulated or decapsulated as they transit the Autonomous System.
  296.  
  297.     1.1.  Terminology
  298.  
  299.         This memo uses the terminology listed in section 1.2 of  [OSPF].
  300.         For  this  reason,  terms such as "Network", "Autonomous System"
  301.         and "link state advertisement" are assumed to be understood.  In
  302.         addition,  the  abbreviation  LSA is used for "link state adver-
  303.         tisement". For example, router links advertisements are referred
  304.         to  as router-LSAs and the new link state advertisement describ-
  305.         ing the location of members of a multicast group is referred  to
  306.         as a group-membership-LSA.
  307.  
  308.         [RFC 1112] discusses the data-link encapsulation of IP multicast
  309.         datagrams.  In  contrast  to the normal forwarding of IP unicast
  310.         datagrams, on a broadcast network the mapping of an IP multicast
  311.         destination  to a data-link destination address is not done with
  312.         the ARP protocol. Instead, static  mappings  have  been  defined
  313.         from  IP  multicast  destinations  to data-link addresses. These
  314.         mappings are dependent on network type;  for  some  networks  IP
  315.         multicasts  are  algorithmically  mapped  to data-link multicast
  316.         addresses, for other networks all IP multicast destinations  are
  317.         mapped  onto  the  data-link  broadcast  address.  This document
  318.         loosely describes both of these possible mappings  as  data-link
  319.         multicast.
  320.  
  321.         The following terms are also used throughout this document:
  322.  
  323.         o   Non-multicast router. A router running OSPF version  2,  but
  324.             not  the  multicast extensions. These routers do not forward
  325.             multicast datagrams, but can interoperate with MOSPF routers
  326.             in  the  forwarding  of unicast packets. Routers running the
  327.             MOSPF protocol are referred to herein as  either  multicast-
  328.             capable routers or MOSPF routers.
  329.  
  330.         o   Non-broadcast networks. A network supporting the  attachment
  331.             of  more  than two stations, but not supporting the delivery
  332.             of a  single  physical  datagram  to  multiple  destinations
  333.  
  334.  
  335.  
  336. [Moy]                                                           [Page 6]
  337.  
  338. Internet Draft        Multicast Extensions to OSPF        September 1992
  339.  
  340.  
  341.             (i.e., not supporting data-link multicast). [OSPF] describes
  342.             these networks as non-broadcast, multi-access  networks.  An
  343.             example of a non-broadcast network is an X.25 PDN.
  344.  
  345.         o   Transit network. A network having two or more  OSPF  routers
  346.             attached.   These  networks can forward data traffic that is
  347.             neither locally-originated nor  locally-destined.  In  OSPF,
  348.             with  the  exception  of point-to-point networks and virtual
  349.             links, the neighborhood of each transit network is described
  350.             by a network links advertisement (network-LSA).
  351.  
  352.         o   Stub network. A network having only  a  single  OSPF  router
  353.             attached.  A network belonging to an OSPF system is either a
  354.             transit or a stub network, but never both.
  355.  
  356.     1.2.  Acknowledgments
  357.  
  358.         The multicast extensions to OSPF are based on Link-State  Multi-
  359.         cast  Routing algorithm presented in [Deering]. In addition, the
  360.         [Deering] paper contains a  section  on  Hierarchical  Multicast
  361.         Routing (providing the ideas for MOSPF's inter-area multicasting
  362.         scheme) and several Distance Vector (also  called  Bellman-Ford)
  363.         multicast  algorithms.  One  of  these Distance Vector multicast
  364.         algorithms, Truncated Reverse Path Broadcasting, has been imple-
  365.         mented in the Internet (see [RFC 1075]).
  366.  
  367.         The MOSPF protocol has been developed by the MOSPF Working Group
  368.         of  the  Internet  Engineering Task Force. Portions of this work
  369.         have been supported by DARPA under NASA contract NAG 2-650.
  370.  
  371. 2.  Multicast routing in MOSPF
  372.  
  373.     This section describes MOSPF's basic  multicast  routing  algorithm.
  374.     The  basic algorithm, run inside a single OSPF area, covers the case
  375.     where the source of  the  multicast  datagram  is  inside  the  area
  376.     itself.  Within  the  area,  the  path  of the datagram forms a tree
  377.     rooted at the datagram source.
  378.  
  379.     2.1.  Routing characteristics
  380.  
  381.         As a multicast datagram is  forwarded  along  its  shortest-path
  382.         tree,  the  datagram is delivered to each member of the destina-
  383.         tion multicast group. In MOSPF, the forwarding of the  multicast
  384.         datagram has the following properties:
  385.  
  386.         o   The path taken by a multicast datagram depends both  on  the
  387.             datagram's  source  and  its  multicast  destination. Called
  388.             source/destination routing, this  is  in  contrast  to  most
  389.  
  390.  
  391.  
  392. [Moy]                                                           [Page 7]
  393.  
  394. Internet Draft        Multicast Extensions to OSPF        September 1992
  395.  
  396.  
  397.             unicast  datagram  forwarding  algorithms  (like  OSPF) that
  398.             route based only on destination.
  399.  
  400.         o   The path taken between the datagram's source and any partic-
  401.             ular  destination group member is the least cost path avail-
  402.             able. Cost is expressed in  terms  of  the  OSPF  link-state
  403.             metric.  For example, if the OSPF metric represents delay, a
  404.             minimum delay path is chosen. OSPF metrics are configurable.
  405.             A  metric  is  assigned  to  each outbound router interface,
  406.             representing the cost of sending a packet on that interface.
  407.             The  cost of a path is the sum of its constituent (outbound)
  408.             router interfaces[1].
  409.  
  410.         o   MOSPF takes advantage of any commonality of least cost paths
  411.             to  destination  group members. However, when members of the
  412.             multicast group are spread out over multiple  networks,  the
  413.             multicast  datagram must at times be replicated. This repli-
  414.             cation is performed as few times as possible  (at  the  tree
  415.             branches), taking maximum advantage of common path segments.
  416.  
  417.         o   For a given multicast datagram,  all  routers  calculate  an
  418.             identical shortest-path tree. There is a single path between
  419.             the datagram's source and any particular  destination  group
  420.             member.  This means that, unlike OSPF's treatment of regular
  421.             (unicast) IP data traffic, there is no provision for  equal-
  422.             cost multipath.
  423.  
  424.         o   On each packet hop, MOSPF  normally  forwards  IP  multicast
  425.             datagrams as data-link multicasts. There are two exceptions.
  426.             First, on non-broadcast networks, since there are  no  data-
  427.             link  multicast/broadcast services the datagram must be for-
  428.             warded to specific  MOSPF  neighbors  (see  Section  2.3.3).
  429.             Second,  a MOSPF router can be configured to forward IP mul-
  430.             ticasts on specific networks as data-link unicasts, in order
  431.             to  avoid  datagram  replication in certain anomalous situa-
  432.             tions (see Section 6.4).
  433.  
  434.         While MOSPF optimizes the path to any  given  group  member,  it
  435.         does  not  necessarily optimize the use of the internetwork as a
  436.         whole. To do so, instead of calculating  source-based  shortest-
  437.         path  trees,  something similar to a minimal spanning tree (con-
  438.         taining only the group members) would  need  to  be  calculated.
  439.         This  type  of minimal spanning tree is called a Steiner tree in
  440.         the literature. For a comparison of shortest-path  tree  routing
  441.         to  routing  using  Steiner  trees, see [Deering2] and [Bharath-
  442.         Kumar].
  443.  
  444.  
  445.  
  446.  
  447.  
  448. [Moy]                                                           [Page 8]
  449.  
  450. Internet Draft        Multicast Extensions to OSPF        September 1992
  451.  
  452.  
  453.     2.2.  Sample path of a multicast datagram
  454.  
  455.         As an example of multicast datagram routing in  MOSPF,  consider
  456.         the  sample  Autonomous System pictured in Figure 1. This figure
  457.         has been taken from the OSPF  specification  (see  [OSPF]).  The
  458.         larger  rectangles  represent  routers,  the  smaller rectangles
  459.         hosts. Oblongs and circles represent  multi-access  networks[2].
  460.         Lines  joining  routers are point-to-point serial connections. A
  461.         cost has been assigned to each outbound router interface.
  462.  
  463.         All routers in Figure 1 are  assumed  to  be  running  MOSPF.  A
  464.         number  of  hosts  have  been  added  to  the  figure. The hosts
  465.         labelled Ma have joined a particular multicast  group  (call  it
  466.         group A) via the IGMP protocol.  These hosts are located on net-
  467.         works N2, N6 and N11. Similarly, using IGMP the  hosts  labelled
  468.         Mb  have  joined  a  separate multicast group B; these hosts are
  469.         located on networks N1, N2 and N3. Note that hosts can join mul-
  470.         tiple  multicast  groups; it is only for clarity of presentation
  471.         that each host has joined at most one multicast  group  in  this
  472.         example.   Also, hosts H2 through H5 have been added to the fig-
  473.         ure to serve as sources  for  multicast  datagrams.  Again,  the
  474.         datagrams'  sources  have  been  made  separate  from  the group
  475.         members only for clarity of presentation.
  476.  
  477.         To illustrate the forwarding of a  multicast  datagram,  suppose
  478.         that host H2 (attached to network N4) sends a multicast datagram
  479.         to multicast group B. This datagram originates  as  a  data-link
  480.         layer  multicast  on  network  N4. Router RT3, being a multicast
  481.         router,  has  "opened  up"  its  interface  data-link  multicast
  482.         filters.  It  therefore  receives  the  multicast  datagram, and
  483.         attempts to forward it to  the  members  of  multicast  group  B
  484.         (located  on  networks  N1,  N2 and N3). This is accomplished by
  485.         sending a single copy of the datagram onto network N3, again  as
  486.         a data-link multicast[3].  Upon receiving the multicast datagram
  487.         from RT3, routers RT1 and RT2 will then multicast  the  datagram
  488.         on their connected stub networks (N1 and N2 respectively).  Note
  489.         that, since the datagram is sent onto network N3 as a  data-link
  490.         multicast, router RT4 will also receive a copy. However, it will
  491.         not forward the datagram, since it does not lie  on  a  shortest
  492.         path  between  the source (host H2) and any members of multicast
  493.         group B.
  494.  
  495.         Note that the path of the  multicast  datagram  depends  on  the
  496.         datagram's  source  network. If the above multicast datagram was
  497.         instead originated by host H3, the path taken would  be  identi-
  498.         cal,  since  hosts  H2  and H3 lie on the same network (net N4).
  499.         However, if the datagram was originated by  host  H4,  its  path
  500.         would  be  different. In this case, when router RT3 receives the
  501.  
  502.  
  503.  
  504. [Moy]                                                           [Page 9]
  505.  
  506. Internet Draft        Multicast Extensions to OSPF        September 1992
  507.  
  508.  
  509.  
  510.                  +
  511.                  | 3+---+    +--+  +--+       N12      N14
  512.                N1|--|RT1|\1  |Mb|  |H4|         \ N13 /
  513.                 _|  +---+ \  +--+ /+--+         8\ |8/8
  514.                | +         \ _|__/                \|/
  515.              +--+   +--+    /    \   1+---+8    8+---+6
  516.              |Mb|   |Mb|   *  N3  *---|RT4|------|RT5|--------+
  517.              +--+  /+--+    \____/    +---+      +---+        |
  518.                   +         /   |                  |7         |
  519.                   | 3+---+ /    |                  |          |
  520.                 N2|--|RT2|/1    |1                 |6         |
  521.                 __|  +---+    +---+8            6+---+        |
  522.                |  +           |RT3|--------------|RT6|        |
  523.              +--+    +--+     +---+     +--+     +---+        |
  524.              |Ma|    |H3|_      |2     _|H2|     Ia|7         |
  525.              +--+    +--+ \     |     / +--+       |          |
  526.                            +---------+             |          |
  527.                                N4                  |          |
  528.                                                    |          |
  529.                                                    |          |
  530.                        N11                         |          |
  531.                    +---------+                     |          |
  532.                         |     \                    |          |    N12
  533.                         |3     +--+                |          |6 2/
  534.                       +---+    |Ma|                |        +---+/
  535.                       |RT9|    +--+                |        |RT7|---N15
  536.                       +---+                        |        +---+ 9
  537.                         |1                   +     |          |1
  538.                        _|__                  |   Ib|5       __|_   +--+
  539.                       /    \      1+----+2   |  3+----+1   /    \--|Ma|
  540.                      *  N9  *------|RT11|----|---|RT10|---*  N6  * +--+
  541.                       \____/       +----+    |   +----+    \____/
  542.                         |                    |                |
  543.                         |1                   +                |1
  544.              +--+   10+----+                N8              +---+
  545.              |H1|-----|RT12|                                |RT8|
  546.              +--+SLIP +----+                                +---+  +--+
  547.                         |2                                    |4  _|H5|
  548.                         |                                     |  / +--+
  549.                    +---------+                            +--------+
  550.                        N10                                    N7
  551.  
  552.                     Figure 1: A sample MOSPF configuration
  553.  
  554.         datagram, RT3 will drop the datagram instead  of  forwarding  it
  555.         (since  RT3  is  no longer on the shortest path to any member of
  556.         group B).
  557.  
  558.  
  559.  
  560. [Moy]                                                          [Page 10]
  561.  
  562. Internet Draft        Multicast Extensions to OSPF        September 1992
  563.  
  564.  
  565.         Note that the path of the multicast datagram also depends on the
  566.         destination  multicast  group.  If  host H2 sends a multicast to
  567.         group A, the path taken is as follows. The datagram again starts
  568.         as  a  multicast  on  network  N4.  Router  RT3 receives it, and
  569.         creates two copies. One is sent onto net N3 which is  then  for-
  570.         warded  onto network N2 by RT2. The other copy is sent to router
  571.         RT10 (via RT6), where the datagram is again split, eventually to
  572.         be  delivered onto networks N6 and N11. Note that, although mul-
  573.         tiple copies of the datagram are produced, the  datagram  itself
  574.         is  not  modified  as  it  is forwarded. No encapsulation of the
  575.         datagram is performed; the destination of the datagram is always
  576.         listed as the multicast group A.
  577.  
  578.     2.3.  MOSPF forwarding mechanism
  579.  
  580.         Each MOSPF router in the path of a multicast datagram bases  its
  581.         forwarding  decision on the contents of a data cache. This cache
  582.         is called the forwarding cache. There is a  separate  forwarding
  583.         cache  entry  for  each source/destination combination[4].  Each
  584.         cache entry indicates, for multicast datagrams  having  matching
  585.         source  and destination, which neighboring node (i.e., router or
  586.         network) the datagram must be received from (called the upstream
  587.         node) and which interfaces the datagram should then be forwarded
  588.         out of (called the downstream interfaces).
  589.  
  590.         A forwarding cache entry is actually built  from  two  component
  591.         pieces.  The first of these components is called the local group
  592.         database. This database, built by the IGMP  protocol,  indicates
  593.         the group membership of the router's directly attached networks.
  594.         The local group database enables the local delivery of multicast
  595.         datagrams.  The second component is the datagram's shortest path
  596.         tree. This tree, built on  demand,  is  rooted  at  a  multicast
  597.         datagram's source. The datagram's shortest path tree enables the
  598.         delivery of multicast datagrams to distant (i.e.,  not  directly
  599.         attached) group members.
  600.  
  601.         2.3.1.  IGMP interface: the local group database
  602.  
  603.             The local group database keeps track of the group membership
  604.             of  the  router's  directly attached networks. Each entry in
  605.             the local group database  is  a  [group,  attached  network]
  606.             pair,  which  indicates that the attached network has one or
  607.             more IP hosts belonging  to  the  IP  multicast  destination
  608.             group.  This  information  is  then  used by the router when
  609.             deciding which  directly  attached  networks  to  forward  a
  610.             received  IP  multicast  datagram onto, in order to complete
  611.             delivery of the datagram to (local) group members.
  612.  
  613.  
  614.  
  615.  
  616. [Moy]                                                          [Page 11]
  617.  
  618. Internet Draft        Multicast Extensions to OSPF        September 1992
  619.  
  620.  
  621.             The local group database is built through the  operation  of
  622.             the  Internet  Group  Membership  Protocol  (IGMP;  see [RFC
  623.             1112]). When an MOSPF router becomes Designated Router on an
  624.             attached  network  (call  the network N1), it starts sending
  625.             periodic IGMP Host Membership Queries on the network.  Hosts
  626.             then respond with IGMP Host Membership Reports, one for each
  627.             multicast group to which they belong. Upon receiving a  Host
  628.             Membership  Report  for  a  multicast  group  A,  the router
  629.             updates its local group database  by  adding/refreshing  the
  630.             entry  [Group A, N1]. If at a later time Reports for group A
  631.             cease to be heard on the network, the entry is then  deleted
  632.             from the local group database.
  633.  
  634.             It is important to note that on any particular network,  the
  635.             sending of IGMP Host Membership queries and the listening to
  636.             IGMP Host Membership Reports  is  performed  solely  by  the
  637.             Designated  Router.  A  MOSPF router ignores Host Membership
  638.             Reports received on those networks where the router has  not
  639.             been  elected Designated Router[5].  This means that at most
  640.             one router performs these IGMP functions on  any  particular
  641.             network,  and  ensures that the network appears in the local
  642.             group database of at most one router. This  prevents  multi-
  643.             cast  datagrams  from being replicated as they are delivered
  644.             to local group members. As a  result,  each  router  in  the
  645.             Autonomous System has a different local group database. This
  646.             is in contrast to the MOSPF link  state  database,  and  the
  647.             datagram  shortest-path  trees  (see  Section 2.3.2), all of
  648.             which are identical in each router belonging  to  the  Auto-
  649.             nomous System.
  650.  
  651.             The existence of local group members must be communicated to
  652.             the  rest  of  the  routers  in  the Autonomous System. This
  653.             ensures that a remotely-originated multicast  datagram  will
  654.             be  forwarded  to  the  router for distribution to its local
  655.             group members. This communication  is  accomplished  through
  656.             the  creation  of  a  group-membership-LSA.  Like other link
  657.             state advertisements, the  group-membership-LSA  is  flooded
  658.             throughout  the  Autonomous  System. The router originates a
  659.             separate group-membership-LSA for each multicast group  hav-
  660.             ing  one  or  more  entries in the local group database. The
  661.             router's group-membership-LSA (say for group A) lists  those
  662.             local  transit  vertices (i.e., the router itself and/or any
  663.             directly connected transit  networks)  that  should  not  be
  664.             pruned  from  group  A's  datagram  shortest-path trees. The
  665.             router lists itself in the group-membership-LSA for group  A
  666.             if  either 1) one or more of the router's attached stub net-
  667.             works contain group A members or 2) the router itself  is  a
  668.             member  of  group  A.  The router lists a directly connected
  669.  
  670.  
  671.  
  672. [Moy]                                                          [Page 12]
  673.  
  674. Internet Draft        Multicast Extensions to OSPF        September 1992
  675.  
  676.  
  677.             transit network in the group-membership-LSA for group  A  if
  678.             both  1)  the router is Designated Router on the network and
  679.             2) the network contains one or more group A members.
  680.  
  681.             Consider again the example pictured in Figure 1.  If  router
  682.             RT3  has been elected Designated Router for network N3, then
  683.             Table 1: lists the local  group  database  for  the  routers
  684.             RT1-RT4.
  685.  
  686.             In this case, each of the routers RT1, RT2 and RT3 will ori-
  687.             ginate  a group-membership-LSA for Group B. In addition, RT2
  688.             will also be originating a group-membership-LSA for Group A.
  689.             RT1  and  RT2's  group-membership-LSAs  will list solely the
  690.             routers themselves (N1 and  N2  are  stub  networks).  RT3's
  691.             group-membership-LSA will list the transit network N3.
  692.  
  693.             Figure 2 displays the Autonomous System's link  state  data-
  694.             base.  A router/transit network is labelled with a multicast
  695.             group if (and only if) it has been  mentioned  in  a  group-
  696.             membership-LSA for the group When building the shortest-path
  697.             tree for a particular  multicast  datagram,  this  labelling
  698.             enables  those  branches  without group members to be pruned
  699.             from  the  tree.  The  process  of  building   a   multicast
  700.             datagram's shortest path tree is discussed in Section 2.3.2.
  701.  
  702.             Note that none of the hosts in Figure 1 belonging to  multi-
  703.             cast  groups  A  and  B show up explicitly in the link state
  704.             database (see Figure 2).  In fact, looking at the link state
  705.             database  you cannot even determine which stub networks con-
  706.             tain multicast group members. The link state database simply
  707.             indicates  those  routers/transit  networks  having attached
  708.             group members. This is all that is necessary for  successful
  709.             forwarding of multicast datagrams.
  710.  
  711.  
  712.  
  713.  
  714.                  Router   local group database
  715.                  _____________________________________
  716.                  RT1      [Group B, N1]
  717.                  RT2      [Group A, N2], [Group B, N2]
  718.                  RT3      [Group B, N3]
  719.                  RT4      None
  720.  
  721.  
  722.                  Table 1: Sample local group databases
  723.  
  724.  
  725.  
  726.  
  727.  
  728. [Moy]                                                          [Page 13]
  729.  
  730. Internet Draft        Multicast Extensions to OSPF        September 1992
  731.  
  732.  
  733.  
  734.                                 **FROM**
  735.  
  736.                  |RT|RT|RT|RT|RT|RT|RT|RT|RT|RT|RT|RT|
  737.                  |1 |2 |3 |4 |5 |6 |7 |8 |9 |10|11|12|N3|N6|N8|N9|
  738.               ----- ---------------------------------------------
  739.               RT1|  |  |  |  |  |  |  |  |  |  |  |  |0 |  |  |  |
  740.               RT2|  |  |  |  |  |  |  |  |  |  |  |  |0 |  |  |  |
  741.               RT3|  |  |  |  |  |6 |  |  |  |  |  |  |0 |  |  |  |
  742.               RT4|  |  |  |  |8 |  |  |  |  |  |  |  |0 |  |  |  |
  743.               RT5|  |  |  |8 |  |6 |6 |  |  |  |  |  |  |  |  |  |
  744.               RT6|  |  |8 |  |7 |  |  |  |  |5 |  |  |  |  |  |  |
  745.               RT7|  |  |  |  |6 |  |  |  |  |  |  |  |  |0 |  |  |
  746.           *   RT8|  |  |  |  |  |  |  |  |  |  |  |  |  |0 |  |  |
  747.           *   RT9|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |0 |
  748.           T  RT10|  |  |  |  |  |7 |  |  |  |  |  |  |  |0 |0 |  |
  749.           O  RT11|  |  |  |  |  |  |  |  |  |  |  |  |  |  |0 |0 |
  750.           *  RT12|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |0 |
  751.           *    N1|3 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
  752.                N2|  |3 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
  753.                N3|1 |1 |1 |1 |  |  |  |  |  |  |  |  |  |  |  |  |
  754.                N4|  |  |2 |  |  |  |  |  |  |  |  |  |  |  |  |  |
  755.                N6|  |  |  |  |  |  |1 |1 |  |1 |  |  |  |  |  |  |
  756.                N7|  |  |  |  |  |  |  |4 |  |  |  |  |  |  |  |  |
  757.                N8|  |  |  |  |  |  |  |  |  |3 |2 |  |  |  |  |  |
  758.                N9|  |  |  |  |  |  |  |  |1 |  |1 |1 |  |  |  |  |
  759.               N10|  |  |  |  |  |  |  |  |  |  |  |2 |  |  |  |  |
  760.               N11|  |  |  |  |  |  |  |  |3 |  |  |  |  |  |  |  |
  761.               N12|  |  |  |  |8 |  |2 |  |  |  |  |  |  |  |  |  |
  762.               N13|  |  |  |  |8 |  |  |  |  |  |  |  |  |  |  |  |
  763.               N14|  |  |  |  |8 |  |  |  |  |  |  |  |  |  |  |  |
  764.               N15|  |  |  |  |  |  |9 |  |  |  |  |  |  |  |  |  |
  765.                H1|  |  |  |  |  |  |  |  |  |  |  |10|  |  |  |  |
  766.  
  767.  
  768.                      Figure 2: The MOSPF database.
  769.  
  770.                  Networks and routers are represented by vertices.
  771.                  An edge of cost X connects Vertex A to Vertex B iff
  772.                  the intersection of Column A and Row B is marked
  773.                  with an X. In addition, RT1, RT2 and N3 are labelled
  774.                  with multicast group A and RT1, N6 and RT9 are
  775.                  labelled with multicast group B.
  776.  
  777.         2.3.2.  A datagram's shortest-path tree
  778.  
  779.             While  the  local  group  database  facilitates  the   local
  780.             delivery  of  multicast  datagrams, the datagram's shortest-
  781.  
  782.  
  783.  
  784. [Moy]                                                          [Page 14]
  785.  
  786. Internet Draft        Multicast Extensions to OSPF        September 1992
  787.  
  788.  
  789.             path tree describes the intermediate hops taken by a  multi-
  790.             cast  datagram  as it travels from its source to the indivi-
  791.             dual  multicast  group  members.  As  mentioned  above,  the
  792.             datagram's shortest-path tree is a pruned shortest-path tree
  793.             rooted  at  the  datagram's  source.  Two  datagrams  having
  794.             differing  [source  net,  multicast  destination]  pairs may
  795.             have, and in  fact  probably  will  have,  different  pruned
  796.             shortest-path trees.
  797.  
  798.             A datagram's shortest path tree  is  built  "on  demand"[6],
  799.             i.e., when the first multicast datagram is received having a
  800.             particular [source net, multicast destination]  combination.
  801.             To  build  the  datagram's shortest-path tree, the following
  802.             calculations are performed. First the datagram's  source  IP
  803.             network  is  located  in the link state database. Then using
  804.             the router-LSAs and network-LSAs in the link state database,
  805.             a  shortest-path  tree is built having the source network as
  806.             root. To complete the process, the branches that do not con-
  807.             tain  routers/transit  networks that have been labelled with
  808.             the  particular  multicast   destination   (via   a   group-
  809.             membership-LSA) are pruned from the tree.
  810.  
  811.             As an example of the building of a datagram's shortest  path
  812.             tree,  again consider the Autonomous System in Figure 1. The
  813.             Autonomous System's link state database is pictured in  Fig-
  814.             ure 2. When a router initially receives a multicast datagram
  815.             sent by Host H2 to the  multicast  group  A,  the  following
  816.             steps  are  taken: Host H2 is first determined to be on net-
  817.             work N4. Then the shortest path tree rooted  at  net  N4  is
  818.             calculated[7],  pruning  those  branches that do not contain
  819.             routers/transit networks that have been  labelled  with  the
  820.             multicast  group A. This results in the pruned shortest-path
  821.             tree pictured in Figure 3. Note that at this point  the  all
  822.             the leaves of the tree are routers/transit networks labelled
  823.             with multicast group A (routers RT2 and RT9 and transit net-
  824.             work N6).
  825.  
  826.             In order to forward the multicast datagram, each router must
  827.             find  its own position in the datagram's shortest path tree.
  828.             The router's (call it router RT1) position in the datagram's
  829.             pruned shortest-path tree consists of 1) RT1's parent in the
  830.             tree (this will be the  forwarding  cache  entry's  upstream
  831.             node) and 2) the list of RT1's interfaces that lead to down-
  832.             stream routers/transit networks that have been labelled with
  833.             the  datagram's destination (these will be added to the for-
  834.             warding cache entry as  downstream  interfaces).  Note  that
  835.             after  calculating  the  datagram's  shortest  path  tree, a
  836.             router may find that it is itself  not  on  the  tree.  This
  837.  
  838.  
  839.  
  840. [Moy]                                                          [Page 15]
  841.  
  842. Internet Draft        Multicast Extensions to OSPF        September 1992
  843.  
  844.  
  845.  
  846.                                        o RT3 (N4, origin)
  847.                                       / \
  848.                                     1/   \8
  849.                                     /     \
  850.                            N3 (Mb) o       o RT6
  851.                                   /         \
  852.                                 0/           \7
  853.                                 /             \
  854.                    RT2 (Ma,Mb) o               o RT10
  855.                                               / \
  856.                                             3/   \1
  857.                                             /     \
  858.                                         N8 o       o N6 (Ma)
  859.                                           /
  860.                                         0/
  861.                                         /
  862.                                   RT11 o
  863.                                       /
  864.                                     1/
  865.                                     /
  866.                                 N9 o
  867.                                   /
  868.                                 0/
  869.                                 /
  870.                       RT9 (Ma) o
  871.  
  872.  
  873.  
  874.                  Figure 3: Sample datagram's shortest-path tree,
  875.                           source N4, destination Group A
  876.  
  877.             would be indicated by a forwarding  cache  entry  having  no
  878.             upstream node or an empty list of downstream interfaces.
  879.  
  880.             As an example of a router describing  its  position  on  the
  881.             datagram's  shortest-path tree, consider Router RT10 in Fig-
  882.             ure 3. The upstream node for the datagram is router RT6, and
  883.             there  are two downstream interfaces: one connecting to net-
  884.             work N6 and the other connecting to network N8.
  885.  
  886.         2.3.3.  Support for Non-broadcast networks
  887.  
  888.             When forwarding multicast datagrams over non-broadcast  net-
  889.             works, the datagram cannot be sent as a link-level multicast
  890.             (since neither link-level multicast nor broadcast  are  sup-
  891.             ported  on  these  networks),  but must instead be forwarded
  892.             separately  to  specific  neighbors.  To  facilitate   this,
  893.  
  894.  
  895.  
  896. [Moy]                                                          [Page 16]
  897.  
  898. Internet Draft        Multicast Extensions to OSPF        September 1992
  899.  
  900.  
  901.             forwarding  cache entries can also contain downstream neigh-
  902.             bors as well as downstream interfaces.
  903.  
  904.             The IGMP protocol is not  defined  over  non-broadcast  net-
  905.             works.  For  this  reason,  there  cannot  be  group members
  906.             directly attached to non-broadcast  networks,  nor  do  non-
  907.             broadcast  networks  ever  appear  in  local  group database
  908.             entries.
  909.  
  910.             As an example, suppose that network N3 in  Figure  1  is  an
  911.             X.25  PDN.  Consider Router RT3's forwarding cache entry for
  912.             datagrams having source network N4 and multicast destination
  913.             Group  B.  In  place  of  having the interface to network N3
  914.             appear as the downstream interface in the matching  forward-
  915.             ing  cache  entry, the neighboring routers RT1 and RT2 would
  916.             instead appear as separate downstream  neighbors.  In  addi-
  917.             tion,  in  this  case  there  could  not be a group B member
  918.             directly attached to network N3.
  919.  
  920.         2.3.4.  Details concerning forwarding cache entries
  921.  
  922.             Each of the  downstream  interface/neighbors  in  the  cache
  923.             entry is labelled with a TTL value. This value indicates the
  924.             number of hops a datagram forwarded out of the interface (or
  925.             forwarded  to  the  neighbor)  would  have  to travel before
  926.             encountering a router/transit network requesting the  multi-
  927.             cast  destination. The reason that a hop count is associated
  928.             with  each  downstream  interface/neighbor  is  so  that  IP
  929.             multicast's  expanding  ring  search  procedure  can be more
  930.             efficiently implemented. By expanding ring search  is  meant
  931.             the following. Hosts can restrict the range of the IP multi-
  932.             cast datagrams that they send by appropriate setting of  the
  933.             TTL  value  in the datagram's IP header.  Then, for example,
  934.             to search for the nearest server the host  can  send  multi-
  935.             casts  first  with TTL set to 1, then 2, etc. By attaching a
  936.             hop count to each downstream interface/neighbor in the  for-
  937.             warding  cache,  datagrams will not be forwarded unless they
  938.             will ultimately reach a multicast destination  before  their
  939.             TTL  expires[8].  This avoids wasting network bandwidth dur-
  940.             ing an expanding ring search.
  941.  
  942.             As an example consider Router  RT10's  forwarding  cache  in
  943.             Figure  3.   Router  RT10's  cache  entry has two downstream
  944.             interfaces. The first, connecting to network N6, is labelled
  945.             as  having  a  group  member  one hop away (Network N6). The
  946.             second, which connects to network N8, is labelled as  having
  947.             a group member two hops away (Router RT9).
  948.  
  949.  
  950.  
  951.  
  952. [Moy]                                                          [Page 17]
  953.  
  954. Internet Draft        Multicast Extensions to OSPF        September 1992
  955.  
  956.  
  957.             Both the datagram shortest path tree  and  the  local  group
  958.             database  may  contribute  downstream interfaces to the for-
  959.             warding cache entries. As an example,  if  a  router  has  a
  960.             local  group  database  entry of [Group G, NX], then an for-
  961.             warding cache entry for Group G, regardless of  destination,
  962.             will list the router interface to Network NX as a downstream
  963.             interface.  Such  a  downstream  interface  will  always  be
  964.             labelled with a TTL of 1.
  965.  
  966.             As an example of forwarding cache  entries,  again  consider
  967.             the  Autonomous System pictured in Figure 1. Suppose Host H2
  968.             sends a multicast datagram to multicast  group  B.  In  that
  969.             case,  several routers will not even attempt to build a for-
  970.             warding cache entry (routers RT5 and RT7) because they  will
  971.             never  receive  the  multicast  datagram in the first place.
  972.             Other routers will receive  the  multicast  datagram  (since
  973.             they  are  forwarded  as  link-level  multicasts), but after
  974.             building the pruned shortest path tree will notice that they
  975.             themselves are not a part of the tree (routers RT1, RT4, RT8
  976.             and RT12). These latter routers will install an empty  cache
  977.             entry,  indicating  that they do not participate in the for-
  978.             warding of the multicast datagram. A sample of the  forward-
  979.             ing  cache  entries  built by the other routers in the Auto-
  980.             nomous System is pictured in Table 2.
  981.  
  982.             A MOSPF router must clear its entire forwarding  cache  when
  983.             the  Autonomous  System's  topology changes, because all the
  984.             datagram shortest-path trees must be rebuilt. Likewise, when
  985.             the  location  of  a  multicast  group's  membership changes
  986.             (reflected by a change in group-membership-LSAs), all  cache
  987.             entries associated with the particular multicast destination
  988.             group  must  be  cleared.  Other  than  these   two   cases,
  989.  
  990.  
  991.               Router   Upstream     Downstream interfaces
  992.                        node         (interface:hops)
  993.               ___________________________________________
  994.               RT10     Router RT6   (N6:1), (N8:3)
  995.               RT11     Net N8       (N9:2)
  996.               RT3      Net N4       (N3:1), (RT6:3)
  997.               RT6      Router RT3   (RT10:2)
  998.               RT2      Net N3       (N2:1)
  999.  
  1000.  
  1001.                Table 2: Sample forwarding cache entries,
  1002.                  for source N4 and destination Group A.
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008. [Moy]                                                          [Page 18]
  1009.  
  1010. Internet Draft        Multicast Extensions to OSPF        September 1992
  1011.  
  1012.  
  1013.             forwarding cache entries need not ever be deleted or  other-
  1014.             wise  modified;  in particular, the forwarding cache entries
  1015.             do not have to be aged. However,  forwarding  cache  entries
  1016.             can be freely deleted after some period of inactivity (i.e.,
  1017.             garbage collected), if router memory resources are in  short
  1018.             supply.
  1019.  
  1020. 3.  Inter-area multicasting
  1021.  
  1022.     Up to this point this memo has discussed multicast  forwarding  when
  1023.     the  entire  Autonomous  System is a single OSPF area. The logic for
  1024.     when the multicast  datagram's  source  and  its  destination  group
  1025.     members  belong  to  the  same  OSPF  area is the same. This section
  1026.     explains the behavior of the  MOSPF  protocol  when  the  datagram's
  1027.     source  and  (at least some of) its destination group members belong
  1028.     to different OSPF areas. This situation is called inter-area  multi-
  1029.     cast.
  1030.  
  1031.     Inter-area multicast brings  up  the  following  issues,  which  are
  1032.     resolved in succeeding sections:
  1033.  
  1034.     o   Are the group-membership-LSAs specific to a specific  area?  And
  1035.         if  they  are, how is group membership information conveyed from
  1036.         one area to the next?
  1037.  
  1038.     o   How are the datagram shortest-path trees built in the inter-area
  1039.         case,  since complete information concerning the topology of the
  1040.         datagram source's neighborhood is not available  to  routers  in
  1041.         other areas?
  1042.  
  1043.     o   In an area border router, multiple datagram shortest-path  trees
  1044.         are  built,  one  for each attached area. How are these separate
  1045.         datagram shortest-path trees combined into a  single  forwarding
  1046.         cache entry?
  1047.  
  1048.     It should be noted in the following that the basic protocol  mechan-
  1049.     isms in the inter-area case are the same as for the intra-area case.
  1050.     Forwarding of multicasts is still defined by  the  contents  of  the
  1051.     forwarding  cache. The forwarding cache is still built from the same
  1052.     two components: the local group database and the datagram  shortest-
  1053.     path  trees. And while the calculation of the datagram shortest-path
  1054.     trees is different in the inter-area case  (see  Section  3.2),  the
  1055.     local  group database is built exactly the same as in the intra-area
  1056.     case (i.e., MOSPF's interface with IGMP  remains  unchanged  in  the
  1057.     presence  of  areas). Finally, the forwarding algorithm described in
  1058.     Section 11 is the same for both the intra-area and inter-area cases.
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064. [Moy]                                                          [Page 19]
  1065.  
  1066. Internet Draft        Multicast Extensions to OSPF        September 1992
  1067.  
  1068.  
  1069.     The following discussion uses the  area  configuration  pictured  in
  1070.     Figure  4 as an example. This figure, taken from the OSPF specifica-
  1071.     tion, shows an Autonomous System split into  three  areas  (Area  1,
  1072.     Area  2  and  Area  3).  A  single backbone area has been configured
  1073.     (everything outside of the shading). Since the backbone area must be
  1074.     contiguous,  a  single  virtual link has been configured between the
  1075.     area border routers RT10 and RT11.  Additionally,  an  area  address
  1076.     range has been configured in Router RT11 so that Networks N9-N11 and
  1077.     Host H1 will be reported as a single route outside of  Area  3  (via
  1078.     summary-LSAs).
  1079.  
  1080.     3.1.  Extent of group-membership-LSAs
  1081.  
  1082.         Group-membership-LSAs are specific to a single OSPF  area.  This
  1083.         means  that,  just  as  with  OSPF router-LSAs, network-LSAs and
  1084.         summary-link-LSAs, a group-membership-LSA is flooded  throughout
  1085.         a  single  area  only[9].   A  router attached to multiple areas
  1086.         (i.e., an area border router) may  end  up  originating  several
  1087.         group-membership-LSAs concerning a single multicast destination,
  1088.         one for each attached area.  However, as we will see below,  the
  1089.         contents  of  these group-membership-LSAs will vary depending on
  1090.         their associated areas.
  1091.  
  1092.         Just as in OSPF, each MOSPF area has its own  link  state  data-
  1093.         base.  The MOSPF database is simply the OSPF link state database
  1094.         enhanced by the group-membership-LSAs. Consider again  the  area
  1095.         configuration  pictured  in  Figure  4. The result of adding the
  1096.         group-membership-LSAs to the area databases yields the databases
  1097.         pictured  in  Figures  6  and  7.  Figure 6 shows Area 1's MOSPF
  1098.         database. Figure 7 shows the backbone's MOSPF  database.  Super-
  1099.         scripts  indicate which transit vertices have been advertised as
  1100.         requesting particular multicast destinations. A  superscript  of
  1101.         "w"  indicates  that the router is advertising itself as a wild-
  1102.         card multicast receiver (see below). The dashed lines  are  OSPF
  1103.         summary-link-LSAs or external-link-LSAs.
  1104.  
  1105.         Suppose an OSPF router has a  local  group  database  entry  for
  1106.         [Group  Y,  network  X].  The  router  then  originates a group-
  1107.         membership-LSA for Group Y into the area containing  network  X.
  1108.         For  example,  in  the  area configuration pictured in Figure 4,
  1109.         Router RT1 originates a group-membership-LSA for Group  B.  This
  1110.         group-membership-LSA  is  flooded  throughout  Area  1,  and  no
  1111.         further. Likewise, assuming that Router  RT3  has  been  elected
  1112.         Designated  Router  for  network  N3,  RT3  originates  a group-
  1113.         membership-LSA into Area 1 listing the  transit  network  N3  as
  1114.         having  group  members. Note that in the link state database for
  1115.         Area 1 (Figure 6) both Router RT1 and network  N3  have  accord-
  1116.         ingly been labelled with Group B.
  1117.  
  1118.  
  1119.  
  1120. [Moy]                                                          [Page 20]
  1121.  
  1122. Internet Draft        Multicast Extensions to OSPF        September 1992
  1123.  
  1124.  
  1125.  
  1126.            ..................................
  1127.            .     +                          .
  1128.            .     | 3+---+    +--+  +--+     . N12      N14
  1129.            .   N1|--|RT1|\1  |Mb|  |H4|     .   \ N13 /
  1130.            .    _|  +---+ \  +--+ /+--+     .   8\ |8/8
  1131.            .   | +         \ _|__/          .     \|/
  1132.            . +--+   +--+    /    \   1+---+8.   8+---+6
  1133.            . |Mb|   |Mb|   *  N3  *---|RT4|------|RT5|--------+
  1134.            . +--+  /+--+    \____/    +---+ .    +---+        |
  1135.            .      +         /   |           .      |7         |
  1136.            .      | 3+---+ /    |           .      |          |
  1137.            .    N2|--|RT2|/1    |1          .      |6         |
  1138.            .    __|  +---+    +---+8        .   6+---+        |
  1139.            .   |  +           |RT3|--------------|RT6|        |
  1140.            . +--+    +--+     +---+     +--+.    +---+        |
  1141.            . |Ma|    |H3|_      |2     _|H2|.    Ia|7         |
  1142.            . +--+    +--+ \     |     / +--+.      |          |
  1143.            .               +---------+      .      |          |
  1144.            .Area 1             N4           .      |          |
  1145.            ..................................      |          |
  1146.            ................................        |          |
  1147.            .           N11                .        |          |
  1148.            .       +---------+            .        |          |
  1149.            .            |     \           .        |          |    N12
  1150.            .            |3     +--+       .        |          |6 2/
  1151.            .          +---+    |Ma|       .        |        +---+/
  1152.            .          |RT9|    +--+       .        |        |RT7|---N15
  1153.            .          +---+               .......  |        +---+ 9
  1154.            .            |1                .. +  ...|..........|1........
  1155.            .           _|__               .. |   Ib|5       __|_   +--+.
  1156.            .          /    \      1+----+2.. |  3+----+1   /    \--|Ma|.
  1157.            .         *  N9  *------|RT11|----|---|RT10|---*  N6  * +--+.
  1158.            .          \____/       +----+ .. |   +----+    \____/      .
  1159.            .            |            !*******|*****!          |        .
  1160.            .            |1           Virtual + Link           |1       .
  1161.            . +--+   10+----+              ..N8              +---+      .
  1162.            . |H1|-----|RT12|              ..                |RT8|      .
  1163.            . +--+SLIP +----+              ..                +---+  +--+.
  1164.            .            |2                ..                  |4  _|H5|.
  1165.            .            |                 ..                  |  / +--+.
  1166.            .       +---------+            ..              +--------+   .
  1167.            .           N10          Area 3..Area 2            N7       .
  1168.            .............................................................
  1169.  
  1170.                     Figure 4: A sample MOSPF area configuration
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176. [Moy]                                                          [Page 21]
  1177.  
  1178. Internet Draft        Multicast Extensions to OSPF        September 1992
  1179.  
  1180.  
  1181.         In OSPF, the area border routers forward routing information and
  1182.         data  traffic  between  areas.  In  MOSPF.  a subset of the area
  1183.         border routers, called the inter-area multicast forwarders, for-
  1184.         ward   group  membership  information  and  multicast  datagrams
  1185.         between areas. Whether a given OSPF area border router is also a
  1186.         MOSPF  inter-area multicast forwarder is configuration dependent
  1187.         (see Section B.1). In Figure 4 we assume that  all  area  border
  1188.         routers are also inter-area multicast forwarders.
  1189.  
  1190.         In order to convey group membership information  between  areas,
  1191.         inter-area   multicast  forwarders  "summarize"  their  attached
  1192.         areas' group membership to the backbone. This  is  very  similar
  1193.         functionality to the summary-link-LSAs that are generated in the
  1194.         base OSPF protocol.  An inter-area  multicast  forwarder  calcu-
  1195.         lates  which  groups  have  members in its attached non-backbone
  1196.         areas. Then, for each of these groups, the inter-area  multicast
  1197.         forwarder injects a group-membership-LSA into the backbone area.
  1198.         For example, in Figure 4 there are two groups having members  in
  1199.         Area  1:  Group A and Group B. For that reason, both of Area 1's
  1200.         inter-area multicast forwarders (Routers  RT3  and  RT4)  inject
  1201.         group-membership-LSAs  for  these  two groups into the backbone.
  1202.         As a result both of these routers are labelled with Groups A and
  1203.         B in the backbone link state database (see Figure 7).
  1204.  
  1205.         However, unlike the summarization of unicast destinations in the
  1206.         base  OSPF  protocol,  the  summarization of group membership in
  1207.         MOSPF is asymmetric. While a non-backbone area's  group  member-
  1208.         ship is summarized to the backbone, this information is not then
  1209.         readvertised  into  other  non-backbone  areas.   Nor   is   the
  1210.         backbone's  group  membership  summarized  for  the non-backbone
  1211.         areas. Going back to the example in Figure 4, while the presence
  1212.         of  Area 3's group (Group A) is advertised to the backbone, this
  1213.         information is not then redistributed to Area 1. In other words,
  1214.         routers  internal  to  Area  1  have  no  idea of Area 3's group
  1215.         membership.
  1216.  
  1217.                 membership    +------------------+   datagrams
  1218.                     + > > > >>|     Backbone     |< < < < +
  1219.                     ^         +------------------+        ^
  1220.                     ^        /         |          \       ^
  1221.                     ^       /          |           \      ^
  1222.                +----^-----+/      +----------+      \+----^-----+
  1223.                |  Area 1  |       |  Area 2  |       |  Area 3  |
  1224.                +----------+       +----------+       +----------+
  1225.  
  1226.                     Figure 5: Inter-area routing architecture
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232. [Moy]                                                          [Page 22]
  1233.  
  1234. Internet Draft        Multicast Extensions to OSPF        September 1992
  1235.  
  1236.  
  1237.         At this point, if no extra functionality  was  added  to  MOSPF,
  1238.         multicast  traffic  originating in Area 1 destined for Multicast
  1239.         Group A would never be forwarded to those  group  A  members  in
  1240.         Area 3. To accomplish this, the notion of wild-card receivers is
  1241.         introduced. A wild-card receiver is a router to which all multi-
  1242.         cast  traffic,  regardless  of  multicast destination, should be
  1243.         forwarded. A router's wild-card multicast  reception  status  is
  1244.         per-area.  In  non-backbone areas, all inter-area multicast for-
  1245.         warders[10] are wild-card  multicast  receivers.   This  ensures
  1246.         that  all  multicast  traffic originating in a non-backbone area
  1247.         will be forwarded to its inter-area  multicast  forwarders,  and
  1248.         hence  to  the  backbone  area.  Since the backbone has complete
  1249.         knowledge of all areas' group membership, the datagram can  then
  1250.         be  forwarded  to  all  group members. Note that in the backbone
  1251.         itself there is no need for wild-card  multicast  receivers[11].
  1252.         As  an example, note that Routers RT3 and RT4 are wild-card mul-
  1253.         ticast receivers in Area 1 (see Figure 6), while there are  none
  1254.         in the backbone (see Figure 7).
  1255.  
  1256.         This yields the inter-area routing architecture pictured in Fig-
  1257.         ure  5.   All group membership is advertised by the non-backbone
  1258.         areas into the backbone.  Likewise,  all  IP  multicast  traffic
  1259.         arising  in the non-backbone areas is forwarded to the backbone.
  1260.         Since at this point group membership information meets the  mul-
  1261.         ticast  datagram traffic, delivery of the datagrams becomes pos-
  1262.         sible.
  1263.  
  1264.     3.2.  Building inter-area datagram shortest-path trees
  1265.  
  1266.         When building datagram shortest-path trees in  the  presence  of
  1267.         areas,  it is often the case that the source of the datagram and
  1268.         (at least some of) the destination group members are in separate
  1269.         areas.  Since  detailed  topological  information concerning one
  1270.         OSPF area is not distributed to other OSPF areas  (the  flooding
  1271.         of  router-LSAs,  network-LSAs and group-membership-LSAs is res-
  1272.         tricted to a single OSPF area only), the  building  of  complete
  1273.         datagram  shortest-path  trees is often impossible in the inter-
  1274.         area case. To compensate, approximations are  made  through  the
  1275.         use of wild-card multicast receivers and OSPF summary-LSAs.
  1276.  
  1277.         When it first receives a datagram for a particular [source  net,
  1278.         destination group] pair, a router calculates a separate datagram
  1279.         shortest-path tree for each of the router's attached areas. Each
  1280.         datagram  shortest-path tree is built solely from LSAs belonging
  1281.         to the particular area's link state  database.  Suppose  that  a
  1282.         router  is calculating a datagram shortest-path tree for Area A.
  1283.         It is useful then to separate out two cases.
  1284.  
  1285.  
  1286.  
  1287.  
  1288. [Moy]                                                          [Page 23]
  1289.  
  1290. Internet Draft        Multicast Extensions to OSPF        September 1992
  1291.  
  1292.  
  1293.  
  1294.                                   **FROM**
  1295.  
  1296.                              |RT|RT|RT|RT|RT|RT|
  1297.                              |1 |2 |3 |4 |5 |7 |N3|
  1298.                           ----- -------------------
  1299.                           RT1|  |  |  |  |  |  |0 |
  1300.                           RT2|  |  |  |  |  |  |0 |
  1301.                           RT3|  |  |  |  |  |  |0 |
  1302.                       *   RT4|  |  |  |  |  |  |0 |
  1303.                       *   RT5|  |  |14|8 |  |  |  |
  1304.                       T   RT7|  |  |20|14|  |  |  |
  1305.                       O    N1|3 |  |  |  |  |  |  |
  1306.                       *    N2|  |3 |  |  |  |  |  |
  1307.                       *    N3|1 |1 |1 |1 |  |  |  |
  1308.                            N4|  |  |2 |  |  |  |  |
  1309.                         Ia,Ib|  |  |15|22|  |  |  |
  1310.                            N6|  |  |16|15|  |  |  |
  1311.                            N7|  |  |20|19|  |  |  |
  1312.                            N8|  |  |18|18|  |  |  |
  1313.                     N9-N11,H1|  |  |19|16|  |  |  |
  1314.                           N12|  |  |  |  |8 |2 |  |
  1315.                           N13|  |  |  |  |8 |  |  |
  1316.                           N14|  |  |  |  |8 |  |  |
  1317.                           N15|  |  |  |  |  |9 |  |
  1318.  
  1319.  
  1320.                      Figure 6: Area 1's MOSPF database.
  1321.  
  1322.              Networks and routers are represented by vertices.
  1323.              An edge of cost X connects Vertex A to Vertex B iff
  1324.              the intersection of Column A and Row B is marked
  1325.              with an X. In addition, RT1, RT2 and N3 are labelled
  1326.              with multicast group A, RT1 is labelled with multicast
  1327.              group B, and both RT3 and RT4 are labelled as
  1328.              wild-card multicast receivers.
  1329.  
  1330.  
  1331.  
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344. [Moy]                                                          [Page 24]
  1345.  
  1346. Internet Draft        Multicast Extensions to OSPF        September 1992
  1347.  
  1348.  
  1349.                                  **FROM**
  1350.  
  1351.                            |RT|RT|RT|RT|RT|RT|RT
  1352.                            |3 |4 |5 |6 |7 |10|11|
  1353.                         ------------------------
  1354.                         RT3|  |  |  |6 |  |  |  |
  1355.                         RT4|  |  |8 |  |  |  |  |
  1356.                         RT5|  |8 |  |6 |6 |  |  |
  1357.                         RT6|8 |  |7 |  |  |5 |  |
  1358.                         RT7|  |  |6 |  |  |  |  |
  1359.                     *  RT10|  |  |  |7 |  |  |2 |
  1360.                     *  RT11|  |  |  |  |  |3 |  |
  1361.                     T    N1|4 |4 |  |  |  |  |  |
  1362.                     O    N2|4 |4 |  |  |  |  |  |
  1363.                     *    N3|1 |1 |  |  |  |  |  |
  1364.                     *    N4|2 |3 |  |  |  |  |  |
  1365.                          Ia|  |  |  |  |  |5 |  |
  1366.                          Ib|  |  |  |7 |  |  |  |
  1367.                          N6|  |  |  |  |1 |1 |3 |
  1368.                          N7|  |  |  |  |5 |5 |7 |
  1369.                          N8|  |  |  |  |4 |3 |2 |
  1370.                   N9-N11,H1|  |  |  |  |  |  |1 |
  1371.                         N12|  |  |8 |  |2 |  |  |
  1372.                         N13|  |  |8 |  |  |  |  |
  1373.                         N14|  |  |8 |  |  |  |  |
  1374.                         N15|  |  |  |  |9 |  |  |
  1375.  
  1376.  
  1377.                  Figure 7: The backbone's MOSPF database.
  1378.  
  1379.              Networks and routers are represented by vertices.
  1380.              An edge of cost X connects Vertex A to Vertex B iff
  1381.              the intersection of Column A and Row B is marked
  1382.              with an X. In addition, RT3 and RT4 are labelled
  1383.              with both multicast groups A and B, and RT7, RT10,
  1384.              and RT11 are labelled with multicast group A.
  1385.  
  1386.         The first case, Case 1: The source of the  datagram  belongs  to
  1387.         Area  A has already been described in Section 2.3.2. However, in
  1388.         the presence of OSPF areas, during tree  pruning  care  must  be
  1389.         taken  so that the branches leading to other areas remain, since
  1390.         it is unknown whether there are group members in these  (remote)
  1391.         areas.  For  this  reason,  only  those branches having no group
  1392.         members nor wild-card receivers are pruned  when  producing  the
  1393.         datagram shortest-path tree.
  1394.  
  1395.         As an example, suppose in Figure 4 that Host H2 sends  a  multi-
  1396.         cast  datagram  to  destination  Group  A.  Then  the datagram's
  1397.  
  1398.  
  1399.  
  1400. [Moy]                                                          [Page 25]
  1401.  
  1402. Internet Draft        Multicast Extensions to OSPF        September 1992
  1403.  
  1404.  
  1405.         shortest-path tree for Area 1, built identically by all  routers
  1406.         in  Area  1  receiving  the datagram, is shown in Figure 8. Note
  1407.         that both inter-area multicast forwarders (RT3 and RT4)  are  on
  1408.         the  datagram's shortest-path tree, ensuring the delivery of the
  1409.         datagram to the backbone and to Areas 2 and 3.
  1410.  
  1411.         o   Case 2: The source of the datagram belongs to an area  other
  1412.             than  Area  A.  In  this  case,  when  building the datagram
  1413.             shortest-path tree for Area A, the immediate neighborhood of
  1414.             the   datagram's  source  is  unknown.  However,  there  are
  1415.             summary-LSAs in the Area A link  state  database  indicating
  1416.             the  cost  of  the paths between each of Area A's inter-area
  1417.             multicast forwarders and the datagram source. These  summary
  1418.             links  are  used  to  approximate  the  neighborhood  of the
  1419.             datagram's source; the tree begins with links directly  con-
  1420.             necting  the source to each of the inter-area multicast for-
  1421.             warders. These links point in the reverse direction (towards
  1422.             instead  of  away  from  the datagram source) from the links
  1423.             considered in Case 1 above. All additional  links  added  to
  1424.             the  tree  also  point  in  the reverse direction. The final
  1425.             datagram shortest-path tree is then produced by, as  before,
  1426.             pruning  all  branches having no group-members nor wild-card
  1427.             receivers.
  1428.  
  1429.             As an example, suppose again that Host H2 in Figure 4  sends
  1430.             a  multicast datagram to destination Group A. The datagram's
  1431.             shortest-path tree for the backbone is shown  in  Figure  9.
  1432.             The  neighborhood  around  the  source (network N4) has been
  1433.             approximated by the summary links advertised by routers  RT3
  1434.             and  RT4.  Note  that  all  links  in  Figure  9's  datagram
  1435.             shortest-path tree  have  arrows  pointing  in  the  reverse
  1436.             direction, towards network N4 instead of away from it.
  1437.  
  1438.                                       o RT3 (W, origin=N4)
  1439.                                       |
  1440.                                      1|
  1441.                                       |
  1442.                               N3 (Mb) o
  1443.                                      / \
  1444.                                    0/   \0
  1445.                                    /     \
  1446.                       RT2 (Ma,Mb) o       o RT4 (W)
  1447.  
  1448.  
  1449.                     Figure 8: Datagram's shortest-path tree,
  1450.                       Area 1, source N4, destination Group A
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456. [Moy]                                                          [Page 26]
  1457.  
  1458. Internet Draft        Multicast Extensions to OSPF        September 1992
  1459.  
  1460.  
  1461.  
  1462.                                      o N4
  1463.                                     / \
  1464.                                   2/   \3
  1465.                                   /     \
  1466.                      RT3 (Ma,Mb) o       o RT4 (Ma,Mb)
  1467.                                 /         \
  1468.                               6/           \8
  1469.                               /             \
  1470.                          RT6 o               o RT5
  1471.                              |               |
  1472.                             5|               |6
  1473.                              |               |
  1474.                    RT10 (Ma) o               o RT7 (Ma)
  1475.                              |
  1476.                             2|
  1477.                              |
  1478.                    RT11 (Ma) o
  1479.  
  1480.  
  1481.  
  1482.                Figure 9: Datagram shortest-path tree: Backbone,
  1483.                   source N4, destination Group A. Note that
  1484.                   reverse costs (i.e., toward origin) are
  1485.                              used throughout.
  1486.  
  1487.  
  1488.         The reverse costs used for the entire tree in Case 2 are  forced
  1489.         because  summary-LSAs only specify the cost towards the datagram
  1490.         source. In the presence of asymmetric link costs, this may  lead
  1491.         to  less  efficient  routes  when  forwarding multicasts between
  1492.         areas
  1493.  
  1494.         Those routers attached to multiple areas must calculate multiple
  1495.         trees  and then merge them into a single forwarding cache entry.
  1496.         As shown in Section 2.3.2, when connected to a single  area  the
  1497.         router's  position on the datagram shortest-path tree determines
  1498.         (in large part) its forwarding cache  entry.  When  attached  to
  1499.         multiple   areas,   and   hence  calculating  multiple  datagram
  1500.         shortest-path trees, each tree  contributes  to  the  forwarding
  1501.         cache  entry's list of downstream interfaces/neighbors. However,
  1502.         only one of the areas' datagram shortest-path trees will  deter-
  1503.         mine the forwarding cache entry's upstream node. When one of the
  1504.         attached areas contains the  datagram  source,  that  area  will
  1505.         determine the upstream node. Otherwise, the tiebreaking rules of
  1506.         Section 12.2.7 are invoked.
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512. [Moy]                                                          [Page 27]
  1513.  
  1514. Internet Draft        Multicast Extensions to OSPF        September 1992
  1515.  
  1516.  
  1517.         Consider again the example of Host H2 in Figure 4 sending a mul-
  1518.         ticast  datagram  to destination Group A. Router RT3 will calcu-
  1519.         late two datagram shortest-path trees, one for Area  1  and  one
  1520.         for  the  backbone.   Since the source of the datagram (Host H2)
  1521.         belongs to Area 1, the Area 1 datagram shortest-path tree deter-
  1522.         mines RT3's upstream node: Network N4. Router RT3 calculates two
  1523.         downstream interfaces for the datagram: the interface to network
  1524.         N3  (which  comes from Area 1's datagram shortest-path tree) and
  1525.         the serial line to router RT6 (which comes from  the  backbone's
  1526.         datagram  shortest-path tree). As for Router RT10, it calculates
  1527.         two trees, determining its upstream node from the backbone  tree
  1528.         and  its  two  downstream  interfaces  from  the  Area  2  tree.
  1529.         Finally, Router RT11 calculates  three  trees,  determining  its
  1530.         upstream  node from the Area 2 tree and its downstream interface
  1531.         from the Area 3 tree.
  1532.  
  1533. 4.  Inter-AS multicasting
  1534.  
  1535.     This section explains how MOSPF deals with the forwarding of  multi-
  1536.     cast  datagrams  between  Autonomous  Systems.  Certain  AS boundary
  1537.     routers in a MOSPF system will be configured as  inter-AS  multicast
  1538.     forwarders. It is assumed that these routers will also be running an
  1539.     inter-AS multicast routing protocol.  This  specification  does  not
  1540.     dictate  the  operation of such an inter-AS multicast routing proto-
  1541.     col. However, the  following  interactions  between  MOSPF  and  the
  1542.     inter-AS routing protocol are assumed:
  1543.  
  1544.     (1) MOSPF guarantees that the  inter-AS  multicast  forwarders  will
  1545.         receive  all multicast datagrams; but it is up to each router so
  1546.         designated to determine whether the datagram should be forwarded
  1547.         to other Autonomous Systems. This determination will probably be
  1548.         made via the inter-AS routing protocol.
  1549.  
  1550.     (2) MOSPF assumes that the inter-AS routing protocol  is  forwarding
  1551.         multicast  datagrams  in  an  RPF  (reverse path forwarding; see
  1552.         [Deering] for an explanation of this  terminology)  fashion.  In
  1553.         other  words,  it  is  assumed  that  a multicast datagram whose
  1554.         source (call it X) lies outside the MOSPF domain will enter  the
  1555.         MOSPF  domain  at  those points that are advertising (into OSPF)
  1556.         the best routes back to X. MOSPF  calculates  the  path  of  the
  1557.         datagram through the MOSPF domain based on this assumption.
  1558.  
  1559.     MOSPF designates an inter-AS multicast forwarder as a wild-card mul-
  1560.     ticast  receiver  in all of its attached areas. As in the inter-area
  1561.     case, this ensures that the routers remain on all  pruned  shortest-
  1562.     path  trees  and thereby receive all multicast datagrams, regardless
  1563.     of destination.
  1564.  
  1565.  
  1566.  
  1567.  
  1568. [Moy]                                                          [Page 28]
  1569.  
  1570. Internet Draft        Multicast Extensions to OSPF        September 1992
  1571.  
  1572.  
  1573.     The presence of inter-AS multicast forwarders is  reflected  in  the
  1574.     contents  of the link state database[12].  Suppose that in Figure 1,
  1575.     both RT5 and RT7 were configured as inter-AS  multicast  forwarders.
  1576.     Then  the  link  state  database would look like the one pictured in
  1577.     Figure 2, with the addition of a) wild-card status for RT5  and  RT7
  1578.     (they  would  appear  with  superscripts of "w") and b) the external
  1579.     links originated  by  RT5  and  RT7  being  labelled  as  multicast-
  1580.     capable[13].
  1581.  
  1582.     Consider instead the area configuration in Figure 4.  Again  suppose
  1583.     RT5 and RT7 are configured as inter-AS multicast forwarders. Then in
  1584.     Area 1's link state database (Figure 6),  the  external  links  ori-
  1585.     ginated by RT5 and RT7 would again be labelled as multicast-capable.
  1586.     However, note that in Area 1's database RT5 and RT7 are not labelled
  1587.     as  wild-card  multicast  receivers. This is unnecessary; since Area
  1588.     1's inter-area multicast forwarders (RT3 and  RT4)  are  wild-cards,
  1589.     all  multicast  datagrams  will be forwarded to the backbone. And in
  1590.     the backbone's link state database (Figure 7), RT5 and RT7  will  be
  1591.     labelled as wild-cards.
  1592.  
  1593.     4.1.  Building inter-AS datagram shortest-path trees.
  1594.  
  1595.         When multicast datagrams are to be forwarded between  Autonomous
  1596.         Systems,  the  datagram  shortest-path tree is built as follows.
  1597.         Remember that the router builds a separate tree for each area to
  1598.         which  it is attached; these trees are then merged into a single
  1599.         forwarding cache entry. Suppose that the router is building  the
  1600.         tree for Area A. We break up the tree building into three cases.
  1601.         This first two cases have already been described earlier in this
  1602.         memo: Case 1 (the source of the datagram belongs to Area A) hav-
  1603.         ing been described in Section 2.3.2 and Case 2  (the  source  of
  1604.         the datagram belongs to another OSPF area) having been described
  1605.         in Section 3.2. The only modification to  these  cases  is  that
  1606.         inter-AS  multicast  forwarders,  as  well  as group members and
  1607.         inter-area multicast  forwarders,  must  remain  on  the  pruned
  1608.         trees.  The new case is as follows:
  1609.  
  1610.         o   Case 3: The source of the datagram belongs to another  Auto-
  1611.             nomous  System.  The immediate neighborhood of the source is
  1612.             then unknown. In this case the multicast-capable AS external
  1613.             links  are  used  to  approximate  the  neighborhood  of the
  1614.             source; the tree begins with links  directly  attaching  the
  1615.             source  to  one  or  more inter-AS multicast forwarders. The
  1616.             approximating AS external links point in the reverse  direc-
  1617.             tion  (i.e.,  towards the source), just as with the approxi-
  1618.             mating summary links in Case 2. Also,  as  in  Case  2,  all
  1619.             links  included in the tree must point in the reverse direc-
  1620.             tion. The final datagram shortest-path tree is then produced
  1621.  
  1622.  
  1623.  
  1624. [Moy]                                                          [Page 29]
  1625.  
  1626. Internet Draft        Multicast Extensions to OSPF        September 1992
  1627.  
  1628.  
  1629.             (as  always)  by  pruning  those  branches  having  no group
  1630.             members nor wild-card receivers.
  1631.  
  1632.             As an example, suppose that a host on Network N12 (see  Fig-
  1633.             ure 4) originates a multicast datagram for Destination Group
  1634.             B. Assume that all external costs pictured are OSPF external
  1635.             type  1  metrics.  Then  any routers in Area 1 receiving the
  1636.             datagram would build the datagram  shortest-path  tree  pic-
  1637.             tured in Figure 10. Note that all links in the tree point in
  1638.             the reverse direction, towards the source.  The  tree  indi-
  1639.             cates  that  the  routers  expect  the datagram to enter the
  1640.             Autonomous System at router RT7, and then to enter the  area
  1641.             at router RT4.
  1642.  
  1643.             Note that in those cases where the "best" inter-AS  boundary
  1644.             router  is not attached to the area, the neighborhood of the
  1645.             source is actually approximated by the  concatenation  of  a
  1646.             summary  link and a multicast-capable AS external link. This
  1647.             is in fact the case in Figure 10.
  1648.  
  1649.         In Case 3 (datagram source in another AS) the  requirement  that
  1650.         all  tree  links  point  in  the  reverse direction (towards the
  1651.         source) accommodates the fact that summary links and  AS  exter-
  1652.         nals  already point in the reverse direction. This also leads to
  1653.         the requirement that the  inter-AS  multicast  routing  protocol
  1654.         operate in a reverse path forwarding fashion (see condition 2 of
  1655.         Section 4). Note that Reverse path forwarding can lead  to  sub-
  1656.         optimal routing when costs are configured asymmetrically. And it
  1657.         can even lead to non-delivery of multicast datagrams in the case
  1658.         of asymmetric reachability.
  1659.  
  1660.         Inter-AS multicast forwarders may end up calculating a  forward-
  1661.         ing  cache entry's upstream node as being external to the AS. As
  1662.         an example, Router RT7 in Figure 10 will end up  calculating  an
  1663.         external  router  (via  its external link to network N12) as the
  1664.         upstream node for the datagram. This means that RT7 will receive
  1665.         the  datagram  from  a router in another AS before injecting the
  1666.         datagram into the MOSPF system.
  1667.  
  1668.     4.2.  Stub area behavior
  1669.  
  1670.         AS external links are not imported into stub areas. Suppose that
  1671.         the  source  of  a particular datagram lies outside of the Auto-
  1672.         nomous System, and that the datagram is forwarded  into  a  stub
  1673.         area.  In the stub area's datagram shortest-path tree the neigh-
  1674.         borhood of the datagram's source cannot be  approximated  by  AS
  1675.         external  links.  Instead  the  neighborhood  of  the  source is
  1676.         approximated by the default summary links (see  Section  3.6  of
  1677.  
  1678.  
  1679.  
  1680. [Moy]                                                          [Page 30]
  1681.  
  1682. Internet Draft        Multicast Extensions to OSPF        September 1992
  1683.  
  1684.  
  1685.  
  1686.                                      o N12
  1687.                                      |
  1688.                                     2|
  1689.                                      |
  1690.                                      o RT7
  1691.                                      |
  1692.                                    14|
  1693.                                      |
  1694.                                      o RT4 (W)
  1695.                                      |
  1696.                                     0|
  1697.                                      |
  1698.                                      o N3 (Mb)
  1699.                                     /|\
  1700.                                    / | \
  1701.                                  1/  | 1\
  1702.                                  /  1|   \
  1703.                                 /    |    \
  1704.                       RT1 (Mb) o     |     o RT3 (W)
  1705.                                      o
  1706.                                 RT2 (Ma,Mb)
  1707.  
  1708.  
  1709.                Figure 10: Datagram shortest-path tree: Area 1,
  1710.                  source N12, destination Group B. Note that
  1711.                   reverse costs (i.e., toward origin) are
  1712.                              used throughout.
  1713.  
  1714.         [OSPF]) that are originated by the stub area's intra-area multi-
  1715.         cast forwarders.
  1716.  
  1717.         Except for this small change  to  the  construction  of  a  stub
  1718.         area's  datagram shortest-path trees, all other MOSPF algorithms
  1719.         (e.g., merging with other areas' datagram shortest-path trees to
  1720.         form  the  forwarding cache) function the same for stub areas as
  1721.         they do for non-stub areas.
  1722.  
  1723. 5.  Modelling internal group membership
  1724.  
  1725.     A MOSPF router may itself contain multicast applications. A  typical
  1726.     example  of  this  is a UNIX workstation that doubles as a multicast
  1727.     router. This section concerns two alternative ways  of  representing
  1728.     the  group  membership  of the MOSPF router's internal applications.
  1729.     Both representations have advantages. For maximum  flexibility,  the
  1730.     MOSPF  forwarding  algorithm  (see Section 11) has been specified so
  1731.     that either representation can be used in a  MOSPF  router  (and  in
  1732.     fact,  both  representations  can  be used at once, depending on the
  1733.  
  1734.  
  1735.  
  1736. [Moy]                                                          [Page 31]
  1737.  
  1738. Internet Draft        Multicast Extensions to OSPF        September 1992
  1739.  
  1740.  
  1741.     application).
  1742.  
  1743.     The first representation is based on the paradigm presented  in  RFC
  1744.     1112. In this case, an application joins a multicast group on one or
  1745.     more specific physical interfaces. The application then  receives  a
  1746.     multicast  datagram  if  and  only  if  it is received on one of the
  1747.     specified interfaces. If a datagram is received on  multiple  speci-
  1748.     fied interfaces, the application receives multiple copies. Figure 11
  1749.     shows this algorithm as it is implemented  in  (modified)  BSD  UNIX
  1750.     kernels.   The  figure shows the processing of a multicast datagram,
  1751.     starting with its reception on a particular interface. First  copies
  1752.     of  the datagram are given to those applications that have joined on
  1753.     the receiving interface. Then the forwarding decision (pictured as a
  1754.     box  containing  a question mark) is made, and the packet is (possi-
  1755.     bly) forwarded out certain interfaces. If these interfaces  are  not
  1756.     capable  of  receiving  their own multicasts, a copy of the datagram
  1757.     must be internally looped back to appropriately joined applications.
  1758.  
  1759.     The advantages to the RFC 1112 representation are as follows:
  1760.  
  1761.     o   It is the standard for  the  way  an  IP  host  joins  multicast
  1762.         groups.  It  is  simplest  to  use the same membership model for
  1763.         hosts and routers; most would consider an  IP  router  to  be  a
  1764.  
  1765.                             +-------+
  1766.                             |receive|
  1767.                             +-------+
  1768.                                 |
  1769.                                 |---> To application
  1770.                                 |
  1771.                       +-------------------+
  1772.                       |forwarding decision|
  1773.                       +-------------------+
  1774.                                 |
  1775.                                / \
  1776.                               /---\----> To application
  1777.                              /     \------> To application
  1778.                             /       \
  1779.                            /         \
  1780.                      +--------+  +--------+
  1781.                      |transmit|  |transmit|
  1782.                      +--------+  +--------+
  1783.  
  1784.  
  1785.               Figure 11: RFC 1112 representation of internal
  1786.                           group membership
  1787.  
  1788.  
  1789.  
  1790.  
  1791.  
  1792. [Moy]                                                          [Page 32]
  1793.  
  1794. Internet Draft        Multicast Extensions to OSPF        September 1992
  1795.  
  1796.  
  1797.         special case of an IP host anyway.
  1798.  
  1799.     o   It is the way group membership has been implemented in BSD UNIX.
  1800.         Existing  multicast  applications  are written to join multicast
  1801.         groups on specific interfaces.
  1802.  
  1803.     o   The  possibility  of  receiving  multiple  datagram  copies  may
  1804.         improve  fault  tolerance.  If the datagram is dropped due to an
  1805.         error on the path to some interface, another interface may still
  1806.         receive a copy.
  1807.  
  1808.     o   The ability to specify  a  particular  receiving  interface  may
  1809.         improve  the  accuracy  of  IP multicast's TTL scoping mechanism
  1810.         (see Section 2.3.4).
  1811.  
  1812.     o   Membership in the non-routable  multicast  groups  (224.0.0.1  -
  1813.         224.0.0.255)  must  be  on a per-interface basis. An OSPF router
  1814.         always belongs to 224.0.0.5 (AllSPFRouters) on its  OSPF  inter-
  1815.         faces,  and may belong to 224.0.0.6 (AllDRouters) on one or more
  1816.         of its OSPF interfaces.
  1817.  
  1818.     The second representation is MOSPF-specific. In this case, an appli-
  1819.     cation  joins  a  multicast group on an interface-independent basis.
  1820.     In other words, group membership is associated with the router as  a
  1821.     whole,  not  separately  on  each  interface.  The  application then
  1822.     receives a copy of a multicast datagram if and only if the  datagram
  1823.     would actually be forwarded by the MOSPF router. Figure 12 shows how
  1824.     this algorithm would be implemented. The datagram is received  on  a
  1825.     particular  interface.  If  the datagram is validated for forwarding
  1826.     (i.e., the receiving interface connects to the  matching  forwarding
  1827.     cache  entry's  upstream node), a copy of the datagram is also given
  1828.     to appropriately joined applications. Note that this model of  group
  1829.     membership  is  not as general as the RFC 1112 model, in that it can
  1830.     only be implemented in MOSPF routers and not in arbitrary IP  hosts.
  1831.     However, it has the following advantages:
  1832.  
  1833.     o   The application does not need to have knowledge  of  the  router
  1834.         interfaces.  It  does  not  need  to  know what kind or how many
  1835.         interfaces there are; this will be taken care of  by  the  MOSPF
  1836.         protocol itself.
  1837.  
  1838.     o   As long as any interface is operational,  the  application  will
  1839.         continue  to receive multicast datagrams. This happens automati-
  1840.         cally, without the application modifying its group membership.
  1841.  
  1842.     o   The application receives only one copy of  the  datagram.  Using
  1843.         the  RFC1112  representation,  whenever  an application joins on
  1844.         more than one interface (which must be done if  the  application
  1845.  
  1846.  
  1847.  
  1848. [Moy]                                                          [Page 33]
  1849.  
  1850. Internet Draft        Multicast Extensions to OSPF        September 1992
  1851.  
  1852.  
  1853.  
  1854.                             +-------+
  1855.                             |receive|
  1856.                             +-------+
  1857.                                 |
  1858.                                 |
  1859.                                 |
  1860.                       +-------------------+
  1861.                       |forwarding decision|---> to application
  1862.                       +-------------------+
  1863.                                 |
  1864.                                / \
  1865.                               /   \
  1866.                              /     \
  1867.                             /       \
  1868.                            /         \
  1869.                      +--------+  +--------+
  1870.                      |transmit|  |transmit|
  1871.                      +--------+  +--------+
  1872.  
  1873.  
  1874.               Figure 12: MOSPF-specific representation of internal
  1875.                              group membership
  1876.  
  1877.         does not want to rely on a single interface), multiple  datagram
  1878.         copies will be received during normal operation.
  1879.  
  1880. 6.  Additional capabilities
  1881.  
  1882.     This section describes the MOSPF configuration  options  that  allow
  1883.     routers  of  differing capabilities to be mixed together in the same
  1884.     routing domain. Note that these options handle special circumstances
  1885.     that  may not be encountered in normal operation. Default values for
  1886.     the configuration settings are specified in Appendix B.
  1887.  
  1888.     6.1.  Mixing with non-multicast routers
  1889.  
  1890.         MOSPF routers can be mixed freely with routers that are  running
  1891.         only  the  base  OSPF algorithm (called non-multicast routers in
  1892.         the following). This allows MOSPF to be deployed in a  piecemeal
  1893.         fashion,  thereby  speeding deployment and allowing experimenta-
  1894.         tion with multicast routing on a limited scale.
  1895.  
  1896.         When a MOSPF router builds a  datagram  shortest-path  tree,  it
  1897.         omits  all  non-multicast  routers. For example, in Figure 1, if
  1898.         router RT6 was not a multicast router,  the  datagram  shortest-
  1899.         path  tree  in  Figure  3  would be built with a more circuitous
  1900.         branch through router RT5, instead of  through  router  RT6.  In
  1901.  
  1902.  
  1903.  
  1904. [Moy]                                                          [Page 34]
  1905.  
  1906. Internet Draft        Multicast Extensions to OSPF        September 1992
  1907.  
  1908.  
  1909.         addition, non-multicast routers do not participate in the flood-
  1910.         ing of the new group-membership-LSAs. This adheres to  the  gen-
  1911.         eral  principle  that  a  router should not have to handle those
  1912.         link state advertisements whose format (or contents) the  router
  1913.         does not understand.
  1914.  
  1915.         Mixing MOSPF routers with non-multicast routers creates a number
  1916.         of  potential  problems.  Certain  mixings  of  MOSPF  and  non-
  1917.         multicast routers can cause multicast datagrams to  take  subop-
  1918.         timal  paths,  or in other cases can lead to the non-delivery of
  1919.         multicast datagrams. In addition, mixing MOSPF routers and  non-
  1920.         multicast  routers can cause the paths of multicast datagrams to
  1921.         diverge radically from  the  path  of  unicast  datagrams.  Such
  1922.         divergences can make routing problems harder to debug.
  1923.  
  1924.         In particular, the following  specific  difficulties  may  arise
  1925.         when mixing MOSPF routers with non-multicast routers:
  1926.  
  1927.         o   Even though there is unicast connectivity to a  destination,
  1928.             there  may  not  be  multicast connectivity. For example, if
  1929.             Router RT10 in Figure 1 becomes a non-multicast router,  the
  1930.             group member connected to network N11 will no longer be able
  1931.             to receive multicasts sourced by Host H2.  But the two hosts
  1932.             will be able to exchange unicasts (e.g., ICMP pings).
  1933.  
  1934.         o   When the Designated Router for a multi-access network  is  a
  1935.             non-multicast  router, the network will not be used for for-
  1936.             warding multicast datagrams. For example,  if  in  Figure  1
  1937.             Router  RT4  is Designated Router for network N3, and RT4 is
  1938.             non-multicast, network N3 will not be  used  to  forward  IP
  1939.             multicasts.  This  would  mean that multicast datagrams ori-
  1940.             ginated by Hosts H2 and H3 would  not  be  forwarded  beyond
  1941.             their  local  network  (N4),  even  though it seems that the
  1942.             needed multicast connectivity exists.
  1943.  
  1944.         o   When forwarding multicast datagrams between areas, mixing of
  1945.             MOSPF  routers  and non-multicast routers in the source area
  1946.             may cause unexpected loss of multicast connectivity. This is
  1947.             because in the inter-area routing of multicast datagrams the
  1948.             neighborhood of the datagram's  source  is  approximated  by
  1949.             OSPF  summary  link advertisements, and OSPF summary LSAs do
  1950.             not carry indications/guarantees of  the  summarized  path's
  1951.             multicast routing capability.
  1952.  
  1953.     6.2.  TOS-based multicast
  1954.  
  1955.         MOSPF allows a separate datagram shortest-path tree to be  built
  1956.         for  each  IP  Type  of  Service.  This means that the path of a
  1957.  
  1958.  
  1959.  
  1960. [Moy]                                                          [Page 35]
  1961.  
  1962. Internet Draft        Multicast Extensions to OSPF        September 1992
  1963.  
  1964.  
  1965.         multicast datagram can vary  depending  on  the  datagram's  TOS
  1966.         classification, as well as its source and destination.
  1967.  
  1968.         For each router interface, OSPF allows a separate metric  to  be
  1969.         configured for each IP TOS. When building the shortest path tree
  1970.         for TOS X, the cost of a path is the sum of the component inter-
  1971.         faces'  TOS  X  metrics.  Note  that  OSPF requires that a TOS 0
  1972.         metric be specified for each interface. However, as  a  form  of
  1973.         data  compression,  metrics  need only be specified for non-zero
  1974.         TOS if they are different than the TOS 0 metric.
  1975.  
  1976.         Additionally, OSPF routers can be configured to ignore TOS  when
  1977.         forwarding  packets.  Such  routers, called TOS-incapable, build
  1978.         only the TOS 0  portion  of  the  routing  table.  TOS-incapable
  1979.         routers  can  be mixed freely with TOS-capable routers when for-
  1980.         warding unicast packets. The way this  is  handled  for  unicast
  1981.         packets  is  that the unicast is forwarded along the TOS 0 route
  1982.         whenever the TOS X route does not  exist.  However,  MOSPF  must
  1983.         treat  this  situation  somewhat  differently, since each router
  1984.         must build the exact same tree rooted at the datagram's source.
  1985.  
  1986.         Like OSPF, MOSPF allows TOS-based routing to be  optional.  TOS-
  1987.         capable  and TOS-incapable multicast routers can be mixed freely
  1988.         in the routing domain.  TOS-incapable  routers  will  only  ever
  1989.         build  TOS  0  datagram shortest-path trees. TOS-capable routers
  1990.         will first build TOS 0 datagram shortest-path  trees.  If  these
  1991.         trees  contain  only TOS-capable routers, datagram shortest-path
  1992.         trees are then built separately for non-zero TOS values.  Other-
  1993.         wise,  the  TOS 0 datagram shortest-path tree is used to forward
  1994.         all traffic, regardless of  its  TOS  designation.   Using  this
  1995.         logic,  all  routers  in  essence  continue to utilize identical
  1996.         datagram  shortest-path  trees.  See  Section  12.2.8  for  more
  1997.         details.
  1998.  
  1999.     6.3.  Assigning multiple IP networks to a physical network
  2000.  
  2001.         Assigning multiple IP networks/subnets to a single physical net-
  2002.         work  causes some confusion in MOSPF. This is because the under-
  2003.         lying OSPF protocol treats these IP networks/subnets as entirely
  2004.         separate  entities,  originating  separate network-LSAs for each
  2005.         and forming separate adjacencies for each, while IGMP recognizes
  2006.         only the single underlying physical network. Adding to the prob-
  2007.         lem is the fact that when a multicast datagram is received  from
  2008.         such a multiply-addressed physical wire, there is no good way to
  2009.         choose the datagram's upstream node (which must be done in order
  2010.         to make the forwarding decision; see Section 11 for details). As
  2011.         a result, unless this situation is dealt with through configura-
  2012.         tion, unwanted replication of multicast datagrams may occur when
  2013.  
  2014.  
  2015.  
  2016. [Moy]                                                          [Page 36]
  2017.  
  2018. Internet Draft        Multicast Extensions to OSPF        September 1992
  2019.  
  2020.  
  2021.         they are forwarded over multiply-addressed wires.
  2022.  
  2023.         As a remedy, MOSPF allows multicast forwarding to be disabled on
  2024.         certain  IP  networks/subnets. When multicast forwarding is dis-
  2025.         abled on the wire's "extra" subnets (i.e.,  all  but  one),  the
  2026.         extra  subnets  will not appear in datagram shortest-path trees,
  2027.         nor will they appear in local group database or forwarding cache
  2028.         entries.  As  a  result,  the  possibility  of unwanted datagram
  2029.         replication is eliminated. The  actual  disabling  of  multicast
  2030.         forwarding  on a subnet is done through setting the IPMulticast-
  2031.         Forwarding parameter to disabled on all router  interfaces  con-
  2032.         necting to the subnet (see Section B.2).
  2033.  
  2034.     6.4.  Networks on Autonomous System boundaries
  2035.  
  2036.         Another complication can arise on IP networks/subnets  that  lie
  2037.         on  the  boundary  of  a MOSPF Autonomous System. Similar to the
  2038.         unicast situation where these networks may be  running  multiple
  2039.         IGPs  (Interior  Gateway  Protocols), these networks may also be
  2040.         running multiple multicast routing protocols. It may then become
  2041.         impossible  for  a MOSPF router to determine whether a multicast
  2042.         datagram is being forwarded  along  the  datagram  shortest-path
  2043.         tree,  or  whether  it  has been inadvertently received from the
  2044.         other Autonomous System.  Guessing  wrong  can  lead  to  either
  2045.         unwanted  replication or non-delivery of the multicast datagram.
  2046.         In addition, in order to prevent receiving  duplicate  multicast
  2047.         datagrams,  group  members on these boundary networks will prob-
  2048.         ably want to declare their membership to one  Autonomous  System
  2049.         and not another.
  2050.  
  2051.         For example, consider the two  Autonomous  Systems  pictured  in
  2052.         Figure 13. Network X is on the boundary of both ASes. One possi-
  2053.         ble multicast datagram path is shown; the datagram originates in
  2054.         a  third  Autonomous System, and is then delivered to both AS #1
  2055.         and AS #2 separately. The paths through the two Autonomous  Sys-
  2056.         tems  may end up having certain boundary networks as common seg-
  2057.         ments. In Figure 13, Network X is common to both paths. In  this
  2058.         case,  if  both Autonomous Systems were running (separate copies
  2059.         of) MOSPF, the same datagram would appear twice on Network X  as
  2060.         a  data-link  multicast. This would cause duplicate datagrams to
  2061.         be received by any group members on Network X or downstream from
  2062.         Network X.
  2063.  
  2064.         MOSPF has two mechanisms to eliminate this replication of multi-
  2065.         cast datagrams. First, a system administrator can configure cer-
  2066.         tain networks to forward multicast datagrams as  data-link  uni-
  2067.         casts  instead  of data-link multicasts. This is done by setting
  2068.         the IPMulticastForwarding  parameter  to  data-link  unicast  on
  2069.  
  2070.  
  2071.  
  2072. [Moy]                                                          [Page 37]
  2073.  
  2074. Internet Draft        Multicast Extensions to OSPF        September 1992
  2075.  
  2076.  
  2077.  
  2078.                               <-Datagram path->*
  2079.                              *                 *
  2080.                              *                 *
  2081.                              *            .....*.........
  2082.                     .........*.....   |   .    *    AS #2
  2083.                     AS #1    *    .   |*****+---+
  2084.                             +---+*****|*----|RTC|
  2085.                             |RTA|----*|*  . +---+
  2086.                             +---+ .  *|*  .
  2087.                                   .  *|*  .
  2088.                                   .  *|*  . +---+
  2089.                             +---+ .  *|*----|RTD|
  2090.                             |RTB|----*|*****+---+
  2091.                             +---+*****|   .....*..........
  2092.                     .........*....    |        *
  2093.                              *        |        *
  2094.                              *    Network X    *
  2095.                              *
  2096.  
  2097.                      Figure 13: Networks on AS boundaries
  2098.  
  2099.         those router interfaces attaching to the  network  (see  Section
  2100.         B.2).  As an example, in Figure 13 the routers in AS #2 could be
  2101.         configured so that Router C would send  the  multicast  datagram
  2102.         out  onto Network X as a data-link unicast addressed directly to
  2103.         Router D. Router D would  accept  this  data-link  unicast,  but
  2104.         would reject any data-link multicast forwarded by Router A. This
  2105.         would eliminate replication of  multicast  datagrams  downstream
  2106.         from Network X. In addition, if the IPMulticastForwarding param-
  2107.         eter is set to data-link unicast on Network X, group  membership
  2108.         will  not  be  monitored on the network. This will prevent group
  2109.         members attached directly to Network X from  receiving  multiple
  2110.         datagram  copies, since group membership on the boundary network
  2111.         will be monitored from only one AS.
  2112.  
  2113.         It should be noted that forwarding IP  multicasts  as  data-link
  2114.         unicasts has some disadvantages when three or more MOSPF routers
  2115.         are attached to the network. First of all, it is more work for a
  2116.         router  to  send  multiple  unicasts  than  a  single multicast.
  2117.         Second, the multiple unicasts  consume  more  network  bandwidth
  2118.         than  a  single  multicast. And last, it increases the delay for
  2119.         some group members since multiple unicasts also take  longer  to
  2120.         send than a single multicast.
  2121.  
  2122.  
  2123.  
  2124.  
  2125.  
  2126.  
  2127.  
  2128. [Moy]                                                          [Page 38]
  2129.  
  2130. Internet Draft        Multicast Extensions to OSPF        September 1992
  2131.  
  2132.  
  2133.     6.5.   Recommended system configuration
  2134.  
  2135.         In order make MOSPF's selection of routes more  predictable,  it
  2136.         is recommended that all routers in any particular OSPF area have
  2137.         the same multicast and TOS capabilities.Keeping areas  homogene-
  2138.         ous ensures that IP multicast packets will follow relatively the
  2139.         same path as IP unicasts. In contrast, while heterogeneous areas
  2140.         will  function,  and  will probably be necessary at least during
  2141.         the initial introduction of multicast routing,  such  areas  may
  2142.         produce  seemingly  sub-optimal and unexpected routes. For exam-
  2143.         ple, see Section 6.1above for a detailed description of the pos-
  2144.         sible pitfalls when mixing multicast and non-multicast routers.
  2145.  
  2146.         As for the other options presented above, to  achieve  the  most
  2147.         predictable  results it is recommended that a router interface's
  2148.         IPMulticastForwarding parameter be set to  a  value  other  than
  2149.         data-link  multicast  only  when  either a) multiple IP networks
  2150.         have been assigned to a single physical wire or b) multiple mul-
  2151.         ticast routing protocols are running on the attached network.
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169.  
  2170.  
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.  
  2183.  
  2184. [Moy]                                                          [Page 39]
  2185.  
  2186. Internet Draft        Multicast Extensions to OSPF        September 1992
  2187.  
  2188.  
  2189. 7.   Basic implementation requirements
  2190.  
  2191.     An implementation of MOSPF requires the following pieces  of  system
  2192.     support.  Note that this support is in addition to that required for
  2193.     the base OSPF implementation as outlined in Section 4.4 of [OSPF].
  2194.  
  2195.     o   Promiscuous multicast reception. In a multicast  router,  it  is
  2196.         necessary  to  receive all IP multicasts at the data-link level.
  2197.         On those interfaces where IP multicast  datagrams  are  encapsu-
  2198.         lated  by  a  wide  range  of  data-link  multicast  destination
  2199.         addresses (e.g, ethernet and FDDI), this is most  easily  accom-
  2200.         plished  by disabling any hardware filtering of multicast desti-
  2201.         nations  (i.e.,  by  "opening  up"  the  interface's   multicast
  2202.         filter).
  2203.  
  2204.     o   Data-link  multicast/broadcast  detection.  To  avoid   unwanted
  2205.         replication of multicast datagrams in certain exceptional condi-
  2206.         tions, it is necessary for the  MOSPF  forwarding  mechanism  to
  2207.         determine  whether  a  datagram  was  received  as  a  data-link
  2208.         multicast/broadcast or as a data-link unicast. See  Section  6.4
  2209.         for more details.
  2210.  
  2211.     o   An implementation of IGMP. MOSPF uses the Internet Group Manage-
  2212.         ment Protocol (IGMP, documented in [RFC 1112]) to monitor multi-
  2213.         cast group membership. See Section 9 for details.
  2214.  
  2215. 8.  Protocol data structures
  2216.  
  2217.     The MOSPF protocol is described herein in terms of its operation  on
  2218.     various protocol data structures. These data structures are included
  2219.     for explanatory uses only, and are not intended to constrain a MOSPF
  2220.     implementation.  Besides  the  data  structures  listed  below, this
  2221.     specification will also reference the various data structures (e.g.,
  2222.     OSPF interfaces and neighbors) defined in [OSPF].
  2223.  
  2224.     In a MOSPF router, the following items are added to the list of glo-
  2225.     bal OSPF data structures described in Section 5 of [OSPF]:
  2226.  
  2227.     o   Local group database. This database describes the group  member-
  2228.         ship  on  all  attached  networks for which the router is either
  2229.         Designated Router or Backup  Designated  Router.  This  in  turn
  2230.         determines  the  group-membership-LSAs that the router will ori-
  2231.         ginate, and the local delivery of multicast datagrams (see  Sec-
  2232.         tions 2.3.1 and 10).
  2233.  
  2234.     o   Forwarding cache. Each entry in the forwarding  cache  describes
  2235.         the  path  of  a  multicast datagram having a particular [source
  2236.         net,  multicast  destination,  TOS]  combination.  These   cache
  2237.  
  2238.  
  2239.  
  2240. [Moy]                                                          [Page 40]
  2241.  
  2242. Internet Draft        Multicast Extensions to OSPF        September 1992
  2243.  
  2244.  
  2245.         entries  are calculated when building the datagram shortest-path
  2246.         trees. See Sections 2.3.4 and 11 for more details.
  2247.  
  2248.     o   Multicast routing capability. Indicates whether  the  router  is
  2249.         running  the multicast extensions defined in this memo. A router
  2250.         running the multicast extensions must still run  the  base  OSPF
  2251.         algorithm as set forth in [OSPF]. Such a router will continue to
  2252.         interoperate with non-multicast-capable OSPF routers  when  for-
  2253.         warding IP unicast traffic.
  2254.  
  2255.     o   Inter-area multicast forwarder.  Indicates  whether  the  router
  2256.         will forward IP multicasts from one OSPF area to another. Such a
  2257.         router declares itself a wild-card  multicast  receiver  in  its
  2258.         router-LSA  (see Section 14.6), and also summarizes its attached
  2259.         areas' group membership to  the  backbone  in  group-membership-
  2260.         LSAs.  When building inter-area datagram shortest-path trees, it
  2261.         is  these  routers  that  appear  immediately  adjacent  to  the
  2262.         datagram  source  at the root of the tree (see Section 3.2). Not
  2263.         all multicast-capable area border routers need be configured  as
  2264.         inter-area  multicast forwarders. However, whenever both ends of
  2265.         a virtual link are multicast-capable, they must both be  config-
  2266.         ured as inter-area multicast forwarders (see Section 14.11).
  2267.  
  2268.     o   Inter-AS multicast forwarder. Indicates whether the router  will
  2269.         forward  IP multicasts between Autonomous Systems. Such a router
  2270.         declares itself a wild-card multicast receiver in its router-LSA
  2271.         (see Section 14.6). These routers are also assumed to be running
  2272.         some kind of inter-AS multicast protocol. They mark all external
  2273.         routes  that they import into the OSPF domain as to whether they
  2274.         provide multicast connectivity (see Section 14.9). When building
  2275.         inter-AS  multicast  datagram  trees,  it  is these routers that
  2276.         appear immediately adjacent to the datagram source at  the  root
  2277.         of the tree.
  2278.  
  2279.     8.1.  Additions to the OSPF area structure
  2280.  
  2281.         The OSPF area data  structure  is  described  in  Section  6  of
  2282.         [OSPF].  In  a  MOSPF router, the following item is added to the
  2283.         OSPF area structure:
  2284.  
  2285.         o   List of group-membership-LSAs. These link  state  advertise-
  2286.             ments  describe  the  location of the area's multicast group
  2287.             members.  Group-membership-LSAs  are  flooded  throughout  a
  2288.             single  area  only. Area border routers also summarize their
  2289.             attached areas' membership by originating  group-membership-
  2290.             LSAs  into the backbone area. For more information, see Sec-
  2291.             tions 3.1 and 10.
  2292.  
  2293.  
  2294.  
  2295.  
  2296. [Moy]                                                          [Page 41]
  2297.  
  2298. Internet Draft        Multicast Extensions to OSPF        September 1992
  2299.  
  2300.  
  2301.     8.2.  Additions to the OSPF interface structure
  2302.  
  2303.         The OSPF interface  structure  is  described  in  Section  9  of
  2304.         [OSPF].  In a MOSPF router, the following items are added to the
  2305.         OSPF interface structure. Note  that  the  IPMulticastForwarding
  2306.         parameter  is  really  a description of the attached network. As
  2307.         such,  it  should  be  configured  identically  on  all  routers
  2308.         attached  to  a  common  network; otherwise incorrect routing of
  2309.         multicast datagrams may result[14].
  2310.  
  2311.         o   IPMulticastForwarding. This configurable parameter indicates
  2312.             whether  IP multicasts should be forwarded over the attached
  2313.             network, and if so, how the forwarding should be  done.  The
  2314.             parameter can assume one of three possible values: disabled,
  2315.             data-link multicast and data-link unicast. When set to  dis-
  2316.             abled,  IP multicast datagrams will not be forwarded out the
  2317.             interface. When set to  data-link  multicast,  IP  multicast
  2318.             datagrams  will  be  forwarded as data-link multicasts. When
  2319.             set to data-link unicast, IP  multicast  datagrams  will  be
  2320.             forwarded  as data-link unicasts. The default value for this
  2321.             parameter is data-link multicast. The other two settings are
  2322.             for  use  in the special circumstances described in Sections
  2323.             6.3 and 6.4. When set to disabled or to  data-link  unicast,
  2324.             IGMP  group membership is not monitored on the attached net-
  2325.             work.
  2326.  
  2327.         o   IGMPPollingInterval. When the router is actively  monitoring
  2328.             group  membership  on  the attached network, it periodically
  2329.             sends IGMP Host Membership Queries. IGMPPollingInterval is a
  2330.             configurable  parameter  indicating  the  number  of seconds
  2331.             between IGMP Host Membership Queries.  The  router  actively
  2332.             monitors  group membership on the attached network when both
  2333.             a) the interface's IPMulticastForwarding parameter is set to
  2334.             data-link  multicast  and  b)  the  router  has been elected
  2335.             Designated Router on the attached network. See Section 9 for
  2336.             details.
  2337.  
  2338.         o   IGMPTimeout.  This  configurable  parameter  indicates   the
  2339.             length  of  time  (in  seconds)  that a local group database
  2340.             entry associated with this interface  will  persist  without
  2341.             another matching IGMP Host Membership Report being received.
  2342.             See Section 9 for details.
  2343.  
  2344.         o   IGMP polling timer. The firing of this interval timer causes
  2345.             an  IGMP Host Membership Query to be sent out the interface.
  2346.             The length of this timer is the configurable parameter IGMP-
  2347.             PollingInterval. See Section 9 for details.
  2348.  
  2349.  
  2350.  
  2351.  
  2352. [Moy]                                                          [Page 42]
  2353.  
  2354. Internet Draft        Multicast Extensions to OSPF        September 1992
  2355.  
  2356.  
  2357.     8.3.  Additions to the OSPF neighbor structure
  2358.  
  2359.         The OSPF neighbor structure is defined in Section 10 of  [OSPF].
  2360.         In  a  MOSPF  router,  the following items are added to the OSPF
  2361.         neighbor structure:
  2362.  
  2363.         o   Neighbor options. This field was already defined in the OSPF
  2364.             specification. However, in MOSPF there is a new option which
  2365.             indicates the  neighbor's  multicast  capability.  This  new
  2366.             option  is  learned in the Database Exchange process through
  2367.             reception of the neighbor's  Database  Description  packets,
  2368.             and  determines whether group-membership-LSAs are flooded to
  2369.             the neighbor. See the items concerning flooding  in  Section
  2370.             14 for a more detailed explanation.
  2371.  
  2372.     8.4.  The local group database
  2373.  
  2374.         The local group database has already been introduced in  Section
  2375.         2.3.1.   The current section attempts a more precise definition.
  2376.         The local group database tracks  the  group  membership  of  the
  2377.         router's   directly  attached  networks.  Database  entries  are
  2378.         created and maintained by the IGMP  protocol.  Database  entries
  2379.         can  cause group-membership-LSAs to be originated, which in turn
  2380.         enable the pruning of datagram shortest-path  trees.  The  local
  2381.         group database also dictates the router's responsibility for the
  2382.         delivery of  multicast  datagrams  to  directly  attached  group
  2383.         members.
  2384.  
  2385.         Each entry in the local group database has three components: the
  2386.         multicast  group,  the attached network and entry's age. A data-
  2387.         base entry is indexed by the  first  two  components:  multicast
  2388.         group  and  attached  network.  A  database  lookup  function is
  2389.         assumed to exist, so that given  a  [multicast  group,  attached
  2390.         network]  pair,  the  matching  database  entry  (if any) can be
  2391.         discovered. A database entry for [Group A, network N1] exists if
  2392.         and  only if there are Group A members currently located on net-
  2393.         work N1.
  2394.  
  2395.         The three components of a local group database entry are defined
  2396.         as follows:
  2397.  
  2398.         o   MulticastGroup. The multicast group whose members are  being
  2399.             tracked  by  this entry. Each multicast group is represented
  2400.             as a class D IP address.  For  the  semantics  of  multicast
  2401.             group membership, see [RFC 1112].
  2402.  
  2403.         o   AttachedNetwork. Each database entry is concerned  with  the
  2404.             group members belonging to a single attached network. To get
  2405.  
  2406.  
  2407.  
  2408. [Moy]                                                          [Page 43]
  2409.  
  2410. Internet Draft        Multicast Extensions to OSPF        September 1992
  2411.  
  2412.  
  2413.             a complete picture of the local group membership  (when  for
  2414.             example  building  a group-membership-LSA), it may be neces-
  2415.             sary to consult multiple  database  entries,  one  for  each
  2416.             attached  network.  Note  that  a router is only required to
  2417.             maintain entries for those attached networks  on  which  the
  2418.             router  has  been elected Designated Router or Backup Desig-
  2419.             nated Router (see Section 9).
  2420.  
  2421.         o   Age. Indicates the number of  seconds  since  an  IGMP  Host
  2422.             Membership  Report  for  multicast  Group A has been seen on
  2423.             network N1. If the age field hits  network  N1's  configured
  2424.             IGMPTimeout value, the local group database entry is removed
  2425.             (i.e., the entry has "aged out"). See Sections 9.2  and  9.3
  2426.             for more information.
  2427.  
  2428.     8.5.  The forwarding cache
  2429.  
  2430.         The forwarding cache has already been defined  in  Section  2.3.
  2431.         The  current  section  attempts  a more precise definition. Each
  2432.         entry in the forwarding cache indicates how a multicast datagram
  2433.         having  a  particular  [source  network,  destination  multicast
  2434.         group, IP TOS] will be forwarded. A forwarding  cache  entry  is
  2435.         built on demand from the local group database and the datagram's
  2436.         shortest-path tree. For more details, consult Sections 2.3.4 and
  2437.         12.
  2438.  
  2439.         Each entry in the forwarding cache has six components: the  mul-
  2440.         ticast  datagram's  source  network,  the  destination multicast
  2441.         group, the IP TOS, the upstream node,  the  list  of  downstream
  2442.         interfaces and (possibly) a list of downstream neighbors. A for-
  2443.         warding cache entry is indexed by  source  network,  destination
  2444.         multicast  group  and  IP  TOS.  A lookup function is assumed to
  2445.         exist, so that given a multicast datagram with a particular  [IP
  2446.         source,  destination  multicast group, IP TOS], a matching cache
  2447.         entry (if any) can be found.
  2448.  
  2449.         The six components of a forwarding cache entry  are  defined  as
  2450.         follows:
  2451.  
  2452.         o   Source network. The datagram's source network  is  described
  2453.             by  a  network/subnet/supernet  number and its corresponding
  2454.             mask. The source network for a datagram is discovered via  a
  2455.             routing  table/database  lookup  of the datagram's IP source
  2456.             address, as described in Section 11.2.
  2457.  
  2458.         o   Destination multicast group. The destination group to  which
  2459.             matching datagrams are being forwarded. For the semantics of
  2460.             multicast group membership, see [RFC 1112].
  2461.  
  2462.  
  2463.  
  2464. [Moy]                                                          [Page 44]
  2465.  
  2466. Internet Draft        Multicast Extensions to OSPF        September 1992
  2467.  
  2468.  
  2469.         o   IP TOS.  The  IP  Type  of  service  specified  by  matching
  2470.             datagrams.  Note that this means that the path of the multi-
  2471.             cast datagrams depends on their TOS classification.
  2472.  
  2473.         o   Upstream node. The attached network/neighboring router  from
  2474.             which the datagram must be received. If received from a dif-
  2475.             ferent attached  network/neighboring  router,  the  matching
  2476.             datagram  is  dropped  instead  of  forwarded. This prevents
  2477.             unwanted replication of multicast datagrams. It is  possible
  2478.             that  the  upstream node is unspecified (i.e., set to NULL).
  2479.             In this case, matching datagrams will always be dropped,  no
  2480.             matter  where  they  are  received from. It is also possible
  2481.             that the upstream  node  is  specified  as  the  placeholder
  2482.             EXTERNAL. This means that the datagram must be received on a
  2483.             non-MOSPF interface in order to be forwarded.
  2484.  
  2485.         o   List of downstream interfaces. These are the  router  inter-
  2486.             faces  that the matching datagram should be forwarded out of
  2487.             (assuming that  the  datagram  was  received  from  upstream
  2488.             node).  Each  interface is also listed with a TTL value. The
  2489.             TTL value is the minimum number of hops necessary  to  reach
  2490.             the  closest  (in  terms of router hops) group member.  This
  2491.             allows the router to drop datagrams that have no  chance  of
  2492.             reaching a destination group member.
  2493.  
  2494.         o   List of downstream neighbors. When the  datagram  is  to  be
  2495.             forwarded  out  a  non-broadcast multi-access network, or if
  2496.             the interface's IPMulticastForwarding parameter  is  set  to
  2497.             data-link unicast, the datagram must be forwarded separately
  2498.             to each downstream neighbor (see Sections 2.3.3 and 6.4). As
  2499.             done  for downstream interfaces, each downstream neighbor is
  2500.             specified together with the smallest TTL that will  actually
  2501.             reach a group member.
  2502.  
  2503. 9.  Interaction with the IGMP protocol
  2504.  
  2505.     MOSPF uses the IGMP protocol (see [RFC 1112]) to  monitor  multicast
  2506.     group  membership.  In  short,  the  Designated  Router on a network
  2507.     periodically sends IGMP Host Membership Queries (see  Section  9.1),
  2508.     which in turn elicit IGMP Host Membership Reports from the network's
  2509.     multicast group members. These  Host  Membership  Reports  are  then
  2510.     recorded  in  the Designated Router's and Backup Designated Router's
  2511.     local group databases (see Section 9.2).
  2512.  
  2513.     9.1.  Sending IGMP Host Membership Queries
  2514.  
  2515.         Only the  network's  Designated  Router  sends  Host  Membership
  2516.         Queries.    This   minimizes  the  amount  of  group  membership
  2517.  
  2518.  
  2519.  
  2520. [Moy]                                                          [Page 45]
  2521.  
  2522. Internet Draft        Multicast Extensions to OSPF        September 1992
  2523.  
  2524.  
  2525.         information on  the  network,  both  in  terms  of  queries  and
  2526.         responses.
  2527.  
  2528.         When a MOSPF router becomes Designated Router on a  network,  it
  2529.         checks to see that the network's IPMulticastForwarding parameter
  2530.         is set to data-link multicast  (see  Section  B.2).  If  so,  it
  2531.         starts  the  interface's  IGMP polling timer. Then, whenever the
  2532.         timer  fires  (every  IGMPPollingInterval  seconds),  the  MOSPF
  2533.         router sends a Host Membership Query out the interface. The des-
  2534.         tination of the query is the IP address 224.0.0.1. For the  for-
  2535.         mat  of  the  query,  see  [RFC 1112].  If/when the MOSPF router
  2536.         ceases to be the network's Designated Router, the  IGMP  polling
  2537.         timer is disabled and no more Hosts Membership Queries are sent.
  2538.  
  2539.         Unusual behavior  can  result  when  multiple  IP  networks  are
  2540.         assigned to a single physical network. MOSPF treats each IP net-
  2541.         work separately,  electing  (possibly)  a  different  Designated
  2542.         Router  for  each network.  However, IGMP operates on a physical
  2543.         network basis only: when a Host Membership Query  is  sent,  all
  2544.         group  members  on  the  physical network respond, regardless of
  2545.         their IP addresses. So unless the IPMulticastForwarding  parame-
  2546.         ter  is set to a value other than data-link multicast on all but
  2547.         one of the physical  network's  IP  networks,  excess  multicast
  2548.         membership reporting will result.
  2549.  
  2550.     9.2.  Receiving IGMP Host Membership Reports
  2551.  
  2552.         Received Host Membership  Reports  are  processed  by  both  the
  2553.         network's  Designated Router and Backup Designated Router. It is
  2554.         the  Designated  Router's  responsibility  to   distribute   the
  2555.         network's  group  membership  information throughout the routing
  2556.         domain, by originating group-membership-LSAs (see  Section  10).
  2557.         The  Backup  Designated  Router processes Reports so that it too
  2558.         has a complete picture of the network's group  membership,  ena-
  2559.         bling a quick cutover upon Designated Router failure.
  2560.  
  2561.         An IGMP Host Membership Report concerns membership in  a  single
  2562.         IP multicast group (call it Group A). The Report is also sent to
  2563.         the Group A address (see [RFC 1112] for details). When  an  IGMP
  2564.         Host  Membership Report, sent on network N[15], is received by a
  2565.         MOSPF router, the following steps are executed:
  2566.  
  2567.         (1) If the router is  neither  the  Designated  Router  nor  the
  2568.             Backup  Designated Router on the network, the Report is dis-
  2569.             carded and processing stops.
  2570.  
  2571.         (2) If the Report  concerns  a  multicast  group  in  the  range
  2572.             224.0.0.1   -  224.0.0.255,  the  Report  is  discarded  and
  2573.  
  2574.  
  2575.  
  2576. [Moy]                                                          [Page 46]
  2577.  
  2578. Internet Draft        Multicast Extensions to OSPF        September 1992
  2579.  
  2580.  
  2581.             processing stops. This range of  multicast  groups  are  for
  2582.             local  use  (single  hop)  only, and datagrams sent to these
  2583.             destinations are never forwarded by multicast routers.
  2584.  
  2585.         (3) Locate the entry for [Group A, Network N] in the local group
  2586.             database.  If no such entry exists, create one. In any case,
  2587.             set the age of the entry to 0. Note that  even  if  multiple
  2588.             hosts  attached  to  network N report membership in the same
  2589.             group, only a single local  group  database  entry  will  be
  2590.             formed.  See  Section  8.4  for  more details concerning the
  2591.             local group database.
  2592.  
  2593.         (4) If the router is the  network's  Designated  Router,  and  a
  2594.             local group database entry was created in the previous step,
  2595.             it may be necessary to originate a new group-membership-LSA.
  2596.             See Section 10 for details.
  2597.  
  2598.     9.3.  Aging local group database entries
  2599.  
  2600.         Every local database entry has an age field. Suppose that  there
  2601.         is  a  database  entry  for [Group A, Network N1]. The age field
  2602.         then indicates the length of time (in seconds)  since  the  last
  2603.         Host  Membership  Report for Group A was received on Network N1.
  2604.         If the age of the entry reaches Network  N1's  configured  IGMP-
  2605.         Timeout value (see Section B.2), the entry is considered invalid
  2606.         and is removed from the database.
  2607.  
  2608.         Note that when a router, after having been either  Network  N1's
  2609.         Designated  Router  or  Backup  Designated Router, but now being
  2610.         neither, will (after IGMPTimeout seconds) automatically age  out
  2611.         all  of its local group database entries associated with Network
  2612.         N1. For this reason, it is not necessary to  purge  local  group
  2613.         database entries on OSPF interface state changes.
  2614.  
  2615.     9.4.  Receiving IGMP Host Membership Queries
  2616.  
  2617.         If a MOSPF router has internal multicast  applications,  and  if
  2618.         the  applications  have  bound  themselves to certain interfaces
  2619.         (using the RFC 1112 representation described in Section 5), then
  2620.         the MOSPF router responds to received Host Membership Queries by
  2621.         issuing Host Membership Reports. Identical to the  operation  of
  2622.         any  IP  host  supporting multicast applications, the exact pro-
  2623.         cedure for issuing these Host Membership Reports is specified in
  2624.         [RFC  1112].  Note  that  in  this  case, if the router has been
  2625.         elected Designated Router on a network, its must receive its own
  2626.         Host Membership Reports and Host Membership Queries.
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632. [Moy]                                                          [Page 47]
  2633.  
  2634. Internet Draft        Multicast Extensions to OSPF        September 1992
  2635.  
  2636.  
  2637.         If instead all of its applications  have  joined  groups  in  an
  2638.         interface-independent    fashion   (using   the   MOSPF-specific
  2639.         representation described in Section 5), the  MOSPF  router  does
  2640.         not  respond  to  Host  Membership  Queries.  Instead, the MOSPF
  2641.         router communicates this membership information  by  originating
  2642.         appropriate group-membership-LSAs (see Section 10.1).
  2643.  
  2644. 10.  Group-membership-LSAs
  2645.  
  2646.     Group-membership-LSAs provide the means of  distributing  membership
  2647.     information  throughout  the MOSPF routing domain. Group-membership-
  2648.     LSAs are specific to a single OSPF  area  (see  Section  3.1).  Each
  2649.     group-membership-LSA concerns a single multicast group. Essentially,
  2650.     the group-membership-LSA lists those  networks  which  are  directly
  2651.     connected  to  the  LSA's  originator  and which contain one or more
  2652.     group members. For more details on how the group-membership-LSA aug-
  2653.     ments the OSPF link state database, see Section 2.3.1.
  2654.  
  2655.     The creation of group-membership-LSAs is discussed in Section  10.1.
  2656.     The  format of the group-membership-LSA is described in Section A.3.
  2657.     A router will originate a group membership-LSA for multicast Group A
  2658.     when one or more of the following conditions hold:
  2659.  
  2660.     (1) The router is Designated Router on a network  (call  it  Network
  2661.         X),  the  interface  to  Network X has its IPMulticastForwarding
  2662.         parameter set to data-link multicast (see Section B.2), and net-
  2663.         work X contains one or more members of Group A.
  2664.  
  2665.     (2) The router is an inter-area  multicast  forwarder  (see  Section
  2666.         B.1),  and  one  or  more  of the router's attached non-backbone
  2667.         areas contain Group A members. In this  case,  the  router  will
  2668.         originate  a group-membership-LSA for Group A into the backbone.
  2669.         This is the way group membership is conveyed between areas  (see
  2670.         Section 3.1).
  2671.  
  2672.     (3) The router itself has applications that are  requesting  member-
  2673.         ship  in  Group A, in an interface-independent fashion (see Sec-
  2674.         tion 5).
  2675.  
  2676.     As for all other types  of  OSPF  link  state  advertisements  (e.g,
  2677.     router-LSAs,  network-LSAs, etc.), group-membership-LSAs are aged as
  2678.     they are held in a router's link state database.  To  prevent  valid
  2679.     advertisements  from  "aging  out",  a router must refresh its self-
  2680.     originated group-membership-LSAs every  LSRefreshTime  interval,  by
  2681.     incrementing  their LS sequence numbers and reissuing them. In addi-
  2682.     tion, when an event occurs that would  alter  one  of  the  router's
  2683.     self-originated  group-membership-LSAs, a new instance of the LSA is
  2684.     issued with an updated (i.e., incremented by 1) LS sequence  number.
  2685.  
  2686.  
  2687.  
  2688. [Moy]                                                          [Page 48]
  2689.  
  2690. Internet Draft        Multicast Extensions to OSPF        September 1992
  2691.  
  2692.  
  2693.     Note  however  that  a  router  is  not allowed to originate two new
  2694.     instances of the same advertisement  within  MinLSInterval  seconds.
  2695.     For  that  reason, occasionally advertisement originations will need
  2696.     to be deferred. Also, an event may occur that makes in inappropriate
  2697.     for  the  router  to continue to originate a particular LSA. In that
  2698.     case, the router flushes the advertisement from the  routing  domain
  2699.     by  "premature  aging".  For more information concerning the mainte-
  2700.     nance of LSAs, see Sections 12, 12.4, 14 and 14.1 of [OSPF].
  2701.  
  2702.     When one of the following events occurs, it may be necessary  for  a
  2703.     router to (re)issue one or more group-membership-LSAs:
  2704.  
  2705.     (1) One of the router's interfaces changes state. For  example,  the
  2706.         router  may  have  become Designated Router on a particular net-
  2707.         work, causing the router  to  start  advertising  the  network's
  2708.         group  membership  to  the  rest  of  the MOSPF system in group-
  2709.         membership-LSAs.
  2710.  
  2711.     (2) The router receives an IGMP Host Membership  Report,  causing  a
  2712.         new local group database entry to be formed (see Section 9.2).
  2713.  
  2714.     (3) One of the router's local group  database  entries  "ages  out",
  2715.         because  it  is  no longer being refreshed by received IGMP Host
  2716.         Membership Reports (see Section 9.3).
  2717.  
  2718.     (4) The router is an inter-area multicast forwarder, and  the  group
  2719.         membership  of  one  of the router's attached non-backbone areas
  2720.         changes.  This is detected by the reception of  a  new,  or  the
  2721.         flushing  of  an  old,  group-membership-LSA  into/from the non-
  2722.         backbone area's link state database.
  2723.  
  2724.     (5) The group membership of one of the  router's  internal  applica-
  2725.         tions changes.
  2726.  
  2727.     10.1.  Constructing group-membership-LSAs
  2728.  
  2729.         This section details how to build  a  group-membership-LSA.  The
  2730.         format  of  a  group-membership-LSA is described in Section A.3.
  2731.         Each group-membership-LSA concerns a single multicast group. The
  2732.         body  of  the advertisement is a list of the local transit nodes
  2733.         (the router itself and directly attached transit networks)  that
  2734.         contain  group members. Section 10 listed the conditions requir-
  2735.         ing the (re)origination of a group-membership-LSA. Note that  if
  2736.         the router is an area border router, it may be necessary to ori-
  2737.         ginate a separate group-membership-LSA for each attached area.
  2738.  
  2739.         The following defines the contents of a group-membership-LSA, as
  2740.         originated  by  Router  X  into  Area  A. It is assumed that the
  2741.  
  2742.  
  2743.  
  2744. [Moy]                                                          [Page 49]
  2745.  
  2746. Internet Draft        Multicast Extensions to OSPF        September 1992
  2747.  
  2748.  
  2749.         group-membership-LSA is to report membership in multicast  Group
  2750.         G:
  2751.  
  2752.         o   The advertisement fields that are not type-specific (LS age,
  2753.             LS  sequence number, LS checksum and length) are set accord-
  2754.             ing to Section 12.1 of [OSPF].
  2755.  
  2756.         o   The Options field of a group-membership-LSA is not processed
  2757.             on  receipt.  However,  for consistency, the Option field in
  2758.             these advertisements  should  have  its  MC-bit  set,  T-bit
  2759.             clear,  and the E-bit should match the configuration of Area
  2760.             A (i.e., set if and only if Area A is not a stub area).  The
  2761.             rest of the Options field is set to 0.
  2762.  
  2763.         o   The Link State ID is set to the group  whose  membership  is
  2764.             being reported (Group G).
  2765.  
  2766.         o   The Advertising Router is set to the OSPF Router ID  of  the
  2767.             router originating the advertisement (Router X).
  2768.  
  2769.         o   The body of the advertisement is a  list  of  local  transit
  2770.             vertices  that  should  be  labelled with Group G membership
  2771.             (see Section 2.3.1). This list may include  the  advertising
  2772.             router  itself,  and  any  of  the transit networks that are
  2773.             directly attached to said router. The following steps deter-
  2774.             mine  which  of these transit vertices are actually included
  2775.             in the group-membership-LSA. Note that any particular vertex
  2776.             should be listed at most once, even though the following may
  2777.             indicate multiple reasons for  a  particular  vertex  to  be
  2778.             listed.  Also note that if no transit vertices are listed by
  2779.             the  advertisement,  the   advertisement   should   not   be
  2780.             (re)originated;  if an instance of the advertisement already
  2781.             exists, it should then be flushed from the link state  data-
  2782.             base.
  2783.  
  2784.             a.  Consider those entries in the local group database  that
  2785.                 describe  Group G membership (see Section 8.4). Consider
  2786.                 each such entry in turn. Each entry  references  one  of
  2787.                 Router  X's  attached  networks  (call it Network N). If
  2788.                 either Network N does not belong to Area A, or if Router
  2789.                 X  is  not  Network N's Designated Router[16], Network N
  2790.                 should be added to  the  group-membership-LSA,  and  the
  2791.                 next local group database entry should be examined. Oth-
  2792.                 erwise, if N is a stub network (e.g., Router  X  is  the
  2793.                 only OSPF router attached to N), Router X adds itself to
  2794.                 the advertisement by adding a vertex  with  Vertex  type
  2795.                 set  to  1 (router) and Vertex ID set to Router X's OSPF
  2796.                 Router ID. Otherwise, N is a transit  network.  In  this
  2797.  
  2798.  
  2799.  
  2800. [Moy]                                                          [Page 50]
  2801.  
  2802. Internet Draft        Multicast Extensions to OSPF        September 1992
  2803.  
  2804.  
  2805.                 case,  Network N should be added to the advertisement by
  2806.                 adding a vertex with Vertex type set to 2 (network)  and
  2807.                 Vertex  ID  set  to the IP address of Network N's Desig-
  2808.                 nated Router (i.e., Router X's IP interface  address  on
  2809.                 Network N).
  2810.  
  2811.             b.  If Router X itself has applications requesting  Group  G
  2812.                 membership  on  an interface-independent basis (see Sec-
  2813.                 tion 5), it should add itself to  the  advertisement  by
  2814.                 adding  a  vertex with Vertex type set to 1 (router) and
  2815.                 Vertex ID set to Router X's OSPF Router ID.
  2816.  
  2817.             c.  If Router X is an inter-area  multicast  forwarder  (see
  2818.                 Section  3.1),  Area  A  is  the  backbone area (Area ID
  2819.                 0.0.0.0), and at least one of the attached  non-backbone
  2820.                 areas  has Group G members (indicated by the presence of
  2821.                 one or more advertisements in their link state databases
  2822.                 having  Link State ID set to Group G[17]), then Router X
  2823.                 should add itself to the advertisement by adding a  ver-
  2824.                 tex with Vertex type set to 1 (router) and Vertex ID set
  2825.                 to Router X's OSPF Router ID.
  2826.  
  2827.     10.2.  Flooding group-membership-LSAs
  2828.  
  2829.         When MOSPF routers and  non-multicast  OSPF  routers  are  mixed
  2830.         together  in a routing domain, the group-membership-LSAs are not
  2831.         flooded to the non-multicast routers[18].  As a  general  design
  2832.         principle,  optional  OSPF  advertisements  are  only flooded to
  2833.         those routers that understand them.
  2834.  
  2835.         A MOSPF router learns of its neighbor's multicast-capability  at
  2836.         the  beginning  of  the "Database Exchange Process" (see Section
  2837.         10.6 of [OSPF], receiving Database Description  packets  from  a
  2838.         neighbor  in  state Exstart). A neighbor is multicast-capable if
  2839.         and only if it sets the MC-bit in the Options field of its Data-
  2840.         base  Description  packets.  Then, in the next step of the Data-
  2841.         base Exchange process, group-membership-LSAs are included in the
  2842.         Database summary list sent to the neighbor (see Sections 7.2 and
  2843.         10.3 of [OSPF]) if  and  only  if  the  neighbor  is  multicast-
  2844.         capable.
  2845.  
  2846.         When flooding group-membership-LSAs  to  adjacent  neighbors,  a
  2847.         MOSPF  router looks at the neighbor's multicast-capability. Such
  2848.         advertisements are only flooded to multicast-capable  neighbors.
  2849.         To   be   more  precise,  in  Section  13.3  of  [OSPF],  group-
  2850.         membership-LSAs are only placed on the Link state retransmission
  2851.         lists  of  multicast-capable  neighbors[19].   Note however that
  2852.         when flooding Link State Update packets as  multicasts,  a  non-
  2853.  
  2854.  
  2855.  
  2856. [Moy]                                                          [Page 51]
  2857.  
  2858. Internet Draft        Multicast Extensions to OSPF        September 1992
  2859.  
  2860.  
  2861.         multicast    neighbor   may   (inadvertently)   receive   group-
  2862.         membership-LSAs. The non-multicast router will then simply  dis-
  2863.         card  the  LSA  (see Section 13 of [OSPF], receiving LSAs having
  2864.         unknown LS types).
  2865.  
  2866. 11.  Detailed description of multicast datagram forwarding
  2867.  
  2868.     This section describes in detail the way MOSPF forwards a  multicast
  2869.     datagram.   The  forwarding  process  has  already  been  informally
  2870.     presented in Section 2.2. However, there are several obscure  confi-
  2871.     guration  options (e.g., the IPMulticastForwarding interface parame-
  2872.     ter) that have been presented elsewhere in this document, which  may
  2873.     influence  the forwarding process. This section gathers together all
  2874.     the influencing factors into a single algorithm.
  2875.  
  2876.     It is assumed in the following that the datagram under consideration
  2877.     has  actually be received on one of the router's interfaces. Locally
  2878.     generated datagrams (i.e., originated by one of the router's  inter-
  2879.     nal  applications)  are  handled instead by the algorithm in Section
  2880.     11.3.
  2881.  
  2882.     The forwarding process consists of the following steps:
  2883.  
  2884.     (1) Upon reception of the datagram, the MOSPF router notes the  fol-
  2885.         lowing parameters. These parameters are examined in later steps,
  2886.         to determine whether the datagram should be forwarded.
  2887.  
  2888.         a.  The receiving MOSPF interface associated with the  datagram.
  2889.             Based  on  the  receiving  physical interface, the receiving
  2890.             MOSPF interface is selected  by  the  algorithm  in  Section
  2891.             11.1.
  2892.  
  2893.         b.  Whether  the  datagram  was   received   as   a   link-level
  2894.             multicast/broadcast  or as a link-level unicast. This infor-
  2895.             mation is used later in Step 7 to help determine whether the
  2896.             datagram should be forwarded.
  2897.  
  2898.     (2) A copy of the datagram should be passed to each internal  appli-
  2899.         cation  that  has  joined the destination multicast group on the
  2900.         receiving MOSPF interface (see Section 5).
  2901.  
  2902.     (3) If the datagram's IP source address matches the receiving  MOSPF
  2903.         interface's  IP  address,  the  datagram should not be forwarded
  2904.         further, and should instead be discarded,  completing  the  for-
  2905.         warding process.  This keeps the router's own locally originated
  2906.         datagrams from being mistakenly replicated, in those cases where
  2907.         the   receiving  MOSPF  interface  receives  its  own  multicast
  2908.         transmissions.
  2909.  
  2910.  
  2911.  
  2912. [Moy]                                                          [Page 52]
  2913.  
  2914. Internet Draft        Multicast Extensions to OSPF        September 1992
  2915.  
  2916.  
  2917.     (4) If the datagram's IP multicast destination falls  in  the  range
  2918.         224.0.0.1 through 224.0.0.255 inclusive, the datagram should not
  2919.         be forwarded further. This range of addresses has been dedicated
  2920.         to local use only.
  2921.  
  2922.     (5) Associate a source  network  with  the  multicast  datagram,  as
  2923.         described  in  Section  11.2.  If  the  source network cannot be
  2924.         determined (i.e., there is no available unicast  route  back  to
  2925.         the  datagram  source),  the  datagram  should  not be forwarded
  2926.         further.
  2927.  
  2928.     (6) Look up the forwarding cache entry (see  Section  8.5)  matching
  2929.         the  datagram's  [source network, IP multicast destination, TOS]
  2930.         combination. If the cache entry does not yet exist, one is built
  2931.         by  the  calculation in Section 12. In order for the datagram to
  2932.         be forwarded, the contents of the forwarding cache entry must be
  2933.         further verified against the received datagram's characteristics
  2934.         as follows:
  2935.  
  2936.         a.  If the forwarding cache entry's upstream node is unspecified
  2937.             (i.e.,  NULL),  then  the  datagram  should not be forwarded
  2938.             further.
  2939.  
  2940.         b.  Otherwise,  suppose  that  the  forwarding   cache   entry's
  2941.             upstream node is set to EXTERNAL. In this case, the datagram
  2942.             is forwarded further if and  only  if  the  receiving  MOSPF
  2943.             interface  is set to NULL (i.e., if and only if the datagram
  2944.             was received on a non-MOSPF interface).
  2945.  
  2946.         c.  Otherwise, if the datagram's receiving MOSPF interface  does
  2947.             not  attach  to  the forwarding cache entry's upstream node,
  2948.             the datagram should not be forwarded further.
  2949.  
  2950.     (7) If the receiving MOSPF interface's IPMulticastForwarding parame-
  2951.         ter  is  set  to  data-link unicast, the datagram should be for-
  2952.         warded further only if it was received as a data-link unicast.
  2953.  
  2954.     (8) At this point the datagram is eligible for  further  forwarding.
  2955.         Before  forwarding,  the router checks to see whether it has any
  2956.         internal applications that have joined the destination multicast
  2957.         group  on  an  interface-independent basis. If so, a copy of the
  2958.         datagram should be passed to each  such  requesting  application
  2959.         process.
  2960.  
  2961.     (9) Examine each of the downstream interfaces listed in the forward-
  2962.         ing  cache  entry. If the TTL in the datagram is greater than or
  2963.         equal to the TTL specified for the downstream interface, a  copy
  2964.         of   the   datagram  should  be  forwarded  out  the  downstream
  2965.  
  2966.  
  2967.  
  2968. [Moy]                                                          [Page 53]
  2969.  
  2970. Internet Draft        Multicast Extensions to OSPF        September 1992
  2971.  
  2972.  
  2973.         interface. Before forwarding the datagram copy, the  copy's  TTL
  2974.         should  be decremented by 1. On most interfaces, the datagram is
  2975.         forwarded as a data-link multicast/broadcast.  The  exact  data-
  2976.         link encapsulation is dependent on the attached network's type:
  2977.  
  2978.         o   On ethernet and IEEE 802.3 networks, the  datagram  is  for-
  2979.             warded  as  a data-link multicast. The destination data-link
  2980.             multicast address is selected as an algorithmic  translation
  2981.             of the IP multicast destination. See [RFC 1112] for details.
  2982.  
  2983.         o   On FDDI networks, the datagram is forwarded as  a  data-link
  2984.             multicast.   The  destination data-link multicast address is
  2985.             selected as an algorithmic translation of the  IP  multicast
  2986.             destination. See [RFC 1188] for details.
  2987.  
  2988.         o   On SMDS networks, the datagram is forwarded using  the  same
  2989.             SMDS  address  that  is  used by IP broadcast datagrams. See
  2990.             [RFC 1209] for details.
  2991.  
  2992.         o   On networks that support broadcast, but not multicast (e.g.,
  2993.             the  Experimental  Ethernet), the datagram is forwarded as a
  2994.             data-link broadcast. See [RFC 1112] for details.
  2995.  
  2996.         o   On point-to-point networks, the datagram is forwarded in the
  2997.             same  way  that  unicast  datagrams  are forwarded. See [RFC
  2998.             1112] for details.
  2999.  
  3000.     (10)
  3001.         Examine each of the downstream neighbors listed in the  forward-
  3002.         ing  cache  entry. If the TTL in the datagram is greater than or
  3003.         equal to the TTL specified for the downstream neighbor,  a  copy
  3004.         of  the  datagram should be forwarded to the downstream neighbor
  3005.         (as a data-link unicast). Before forwarding the  datagram  copy,
  3006.         the copy's TTL should be decremented by 1.
  3007.  
  3008.     ICMP error messages are never generated in response to  received  IP
  3009.     multicasts.  In  particular,  ICMP destination unreachables and ICMP
  3010.     TTL expired messages are not generated by the above procedure if the
  3011.     router refuses to forward a multicast datagram.
  3012.  
  3013.     11.1.  Associating a MOSPF interface with a received datagram
  3014.  
  3015.         A MOSPF interface must be associated with a  received  multicast
  3016.         datagram before it is forwarded (see Step 1a of Section 11), and
  3017.         with received IGMP Host Membership Reports before they are  pro-
  3018.         cessed (see Section 9.2).
  3019.  
  3020.  
  3021.  
  3022.  
  3023.  
  3024. [Moy]                                                          [Page 54]
  3025.  
  3026. Internet Draft        Multicast Extensions to OSPF        September 1992
  3027.  
  3028.  
  3029.         When there is only a single IP network assigned to the  physical
  3030.         interface  that  received  the datagram, the choice of receiving
  3031.         MOSPF interface is clear. When there  are  multiple  logical  IP
  3032.         networks  attached  to  the  receiving  physical  interface, the
  3033.         receiving MOSPF interface is selected as follows. Examine all of
  3034.         the  MOSPF  interfaces  associated  with  the receiving physical
  3035.         interface. Discard those interfaces whose  IPMulticastForwarding
  3036.         parameter  has  been set to disabled. The receiving MOSPF inter-
  3037.         face is then the  remaining  interface  having  the  highest  IP
  3038.         interface  address  (or  NULL  if  there are no remaining inter-
  3039.         faces)[20].
  3040.  
  3041.     11.2.  Locating the source network
  3042.  
  3043.         MOSPF forwarding cache entries  are  rooted  at  the  datagram's
  3044.         source  IP network/subnet/supernet. For this reason, whenever an
  3045.         IP multicast datagram is received, the IP network  belonging  to
  3046.         the  datagram's  IP source address must be found. This is accom-
  3047.         plished by the following algorithm:
  3048.  
  3049.         Look up the OSPF TOS 0 routing table entry[21] corresponding  to
  3050.         datagram's  IP  source  address, as described in Section 11.1 of
  3051.         [OSPF]. If this routing table entry describes an OSPF intra-area
  3052.         or inter-area route, the source network is set to be the network
  3053.         defined by the routing table entry's Destination ID and  Address
  3054.         Mask  (see  Section 11 of [OSPF]). Otherwise (i.e., the matching
  3055.         routing table entry specifies an external route, or there is  no
  3056.         matching  routing table entry), the list of AS external-LSAs are
  3057.         examined, determining the best match (i.e., most specific match)
  3058.         from among those LSAs which have been originated by reachable AS
  3059.         boundary routers and which have their MC-bit  set  (see  Section
  3060.         A.1).  The  source network is set to the network/subnet/supernet
  3061.         (possibly even the default route) described by the best matching
  3062.         AS  external-LSA. AS external-LSAs specifying a cost of LSInfin-
  3063.         ity are eligible for this best match, as long as their MC-bit is
  3064.         set.
  3065.  
  3066.         External sources are treated differently in the  above  calcula-
  3067.         tion  since  it  is  likely that the Internet will have separate
  3068.         multicast and unicast topologies for some time to come. When the
  3069.         multicast  and  unicast  topologies do merge, the MC-bit will be
  3070.         set on all AS external-LSAs and the above use of the  LSInfinity
  3071.         metric  (to  indicate  a  route that is to be used for multicast
  3072.         traffic, but not unicast traffic), will no longer be  necessary.
  3073.         At  that  time, the determination of source network for external
  3074.         sources will revert to the same simple routing table lookup that
  3075.         is used for internal sources.
  3076.  
  3077.  
  3078.  
  3079.  
  3080. [Moy]                                                          [Page 55]
  3081.  
  3082. Internet Draft        Multicast Extensions to OSPF        September 1992
  3083.  
  3084.  
  3085.         As an example of the logic for external sources, suppose a  mul-
  3086.         ticast  datagram  is  received  having  the  IP  source  address
  3087.         10.1.1.1. Suppose also that the three AS external-LSAs shown  in
  3088.         Table  3  are  in  the router's OSPF database. The routing table
  3089.         lookup  would  yield  the  network  10.1.1.0  with  a  mask   of
  3090.         255.255.255.0,  however  the  above  calculation  would choose a
  3091.         source network of 10.1.0.0 with a mask of  255.255.0.0,  despite
  3092.         the fact that its matching LSA has a cost of LSInfinity.
  3093.  
  3094.     11.3.  Forwarding locally originated multicasts
  3095.  
  3096.         This section describes how a MOSPF router forwards  a  multicast
  3097.         datagram  that  has  been  originated by one of the router's own
  3098.         internal applications.  The  process  begins  with  one  of  the
  3099.         router's  internal  applications  formatting  and addressing the
  3100.         datagram. Forwarding the locally originated multicast then  con-
  3101.         sists of the following steps:
  3102.  
  3103.         (1) Find the router  interface  whose  IP  address  matches  the
  3104.             datagram's  source  address. Multicast the datagram out that
  3105.             interface, according to the Host extensions  for  IP  multi-
  3106.             casting specified in [RFC 1112].
  3107.  
  3108.         (2) If the router interface found in the previous step has  been
  3109.             configured  for  OSPF,  set the receiving MOSPF interface to
  3110.             that interface.  Otherwise, set the receiving  MOSPF  inter-
  3111.             face to NULL.
  3112.  
  3113.         (3) Exeqcute the MOSPF forwarding process described  in  Section
  3114.             11, beginning with its Step 4.
  3115.  
  3116.         The above algorithm amounts to the  router  always  multicasting
  3117.         the  datagram  out  the  source interface, and the executing the
  3118.         basic forwarding algorithm (in Section 11) as  if  the  datagram
  3119.         had  actually  been  received  on the source interface. In those
  3120.         cases where the router receives its own multicast transmissions,
  3121.  
  3122.  
  3123.              Network    Mask            Cost         MC-bit
  3124.              ______________________________________________
  3125.              10.1.1.0   255.255.255.0   10           clear
  3126.              10.1.0.0   255.255.0.0     LSInfinity   set
  3127.              10.0.0.0   255.0.0.0       1            set
  3128.  
  3129.  
  3130.                     Table 3: Sample AS external-LSAs
  3131.  
  3132.  
  3133.  
  3134.  
  3135.  
  3136. [Moy]                                                          [Page 56]
  3137.  
  3138. Internet Draft        Multicast Extensions to OSPF        September 1992
  3139.  
  3140.  
  3141.         unwanted replication is prevented by Step 3 of  Section  11.  In
  3142.         fact,  this specification has purposely presented the forwarding
  3143.         algorithm  (both  for  received  and  for   locally   originated
  3144.         datagrams)  so  that  the  correct  forwarding actions are taken
  3145.         independent of whether the router  receives  its  own  multicast
  3146.         transmissions.
  3147.  
  3148. 12.  Construction of forwarding cache entries
  3149.  
  3150.     This section details the building of a MOSPF forwarding cache entry.
  3151.     A  high  level  discussion  of  this  construction  has already been
  3152.     presented in Sections 2.3, 2.3.1, 2.3.2, 3.2,  and  4.1.  Forwarding
  3153.     cache  entries  are  built  on  demand, when a multicast datagram is
  3154.     received and no matching forwarding cache entry is found (see Step 6
  3155.     of Section 11).  The parameters passed to the forwarding cache entry
  3156.     build process are: the datagram's source network (see Section  11.2)
  3157.     and  its  destination group address. These two parameters are called
  3158.     SourceNet and Group G in the following algorithm. The main steps  in
  3159.     the build process are the following:
  3160.  
  3161.     (1) Allocate the forwarding cache entry. Initialize its Source  net-
  3162.         work  to  SourceNet,  its Destination multicast group to Group G
  3163.         and its IP TOS field to match the multicast datagram's TOS. Ini-
  3164.         tialize  its  upstream node and list of downstream interfaces to
  3165.         NULL.
  3166.  
  3167.     (2) For each Area A to which the calculating router is attached:
  3168.  
  3169.         a.  Calculate Area A's datagram shortest-path tree. This  calcu-
  3170.             lation  is  described in Section 12.2 below. In many ways it
  3171.             is similar to the calculation of OSPF's  intra-area  routes,
  3172.             described  in  Section  16.1 of [OSPF]. The main differences
  3173.             between the multicast datagram shortest-path  tree  calcula-
  3174.             tion and OSPF's intra-area unicast calculation are listed in
  3175.             Section 12.2.9 below. As a product of each  area's  datagram
  3176.             shortest-path  tree,  the  forwarding  cache entry's list of
  3177.             outgoing interfaces is (possibly) updated.
  3178.  
  3179.             Area A's datagram shortest-path tree  is  dependent  on  the
  3180.             datagram's IP TOS. Section 12.2 describes the TOS 0 datagram
  3181.             shortest-path tree. The modifications necessary for non-zero
  3182.             TOS values are detailed in Section 12.2.8.
  3183.  
  3184.         b.  Possibly set the forwarding  cache  entry's  upstream  node.
  3185.             Only  one  of  the  calculating router's attached areas will
  3186.             determine the forwarding cache entry's upstream  node.  This
  3187.             area is called the datagram's RootArea. The RootArea is ini-
  3188.             tially set to  NULL.  After  completing  Area  A's  datagram
  3189.  
  3190.  
  3191.  
  3192. [Moy]                                                          [Page 57]
  3193.  
  3194. Internet Draft        Multicast Extensions to OSPF        September 1992
  3195.  
  3196.  
  3197.             shortest-path  tree,  the calculation in Section 12.2.7 will
  3198.             determine whether Area A is the datagram's RootArea.
  3199.  
  3200.     (3) Update the forwarding cache entry's list of outgoing interfaces,
  3201.         according  to  the  contents  of  the local group database. This
  3202.         ensures multicast delivery to group members residing on the cal-
  3203.         culating  router's  directly  attached networks. This process is
  3204.         described in Section 12.3.
  3205.  
  3206.     These main steps are described in more detail  below.  The  detailed
  3207.     description  begins  with an explanation of the major data structure
  3208.     used by the datagram shortest-path tree calculation: The Vertex data
  3209.     structure.
  3210.  
  3211.     12.1.  The Vertex data structure
  3212.  
  3213.         A datagram shortest-path tree is built by the  Dijkstra  or  SPF
  3214.         algorithm.  The  algorithm is stated herein using graph-oriented
  3215.         language: vertices and links. Vertices are  the  area's  routers
  3216.         and  transit  networks,  and links are the router interfaces and
  3217.         point-to-point lines that connect them. Each vertex has the fol-
  3218.         lowing  state information attached to it. Basically, this infor-
  3219.         mation indicates the current best path from the SourceNet to the
  3220.         vertex, and the position of the vertex relative to the calculat-
  3221.         ing router. Note that a separate datagram shortest-path tree  is
  3222.         built  for  each area, and that the vertices described below are
  3223.         also specific to a single area (called Area A).
  3224.  
  3225.         o   Vertex type. Set to 1 for routers, 2 for  transit  networks.
  3226.             Note that this coding matches the coding for vertices listed
  3227.             in the group-membership-LSA (see Section A.3).
  3228.  
  3229.         o   Vertex ID. A 32-bit identifier for the vertex. For  routers,
  3230.             set  to  the  router's OSPF Router ID. For transit networks,
  3231.             set the IP address of the network's Designated Router.  Note
  3232.             that  this  coding matches the coding for vertices listed in
  3233.             the group-membership-LSA (see Section A.3).
  3234.  
  3235.         o   LSA. The link state  advertisement  describing  the  vertex'
  3236.             immediate  neighborhood.  Can  be discovered by performing a
  3237.             database lookup in Area A's link state database (see Section
  3238.             12.2  of  [OSPF]),  with LS type set to Vertex type and Link
  3239.             State ID set to Vertex ID.
  3240.  
  3241.         o   Parent. In the current best path from SourceNet to the  ver-
  3242.             tex,  the  router/transit  network immediately preceding the
  3243.             vertex. Note that the parent can change as better and better
  3244.             paths  are  found,  up  until the vertex is installed on the
  3245.  
  3246.  
  3247.  
  3248. [Moy]                                                          [Page 58]
  3249.  
  3250. Internet Draft        Multicast Extensions to OSPF        September 1992
  3251.  
  3252.  
  3253.             shortest-path tree.
  3254.  
  3255.         o   IncomingLinkType. This parameter is set to the type of  link
  3256.             that  led  to  Vertex's inclusion on the shortest-path tree.
  3257.             Listed in order of decreasing preference[22],  the  possible
  3258.             types  are:  ILVirtual  (virtual links), ILDirect (vertex is
  3259.             directly attached to SourceNet),  ILNormal  (either  router-
  3260.             to-router  or router-to-network links), ILSummary (OSPF sum-
  3261.             mary links), ILExternal (OSPF AS external links), or  ILNone
  3262.             (the vertex is not on the shortest-path tree).
  3263.  
  3264.         o   AssociatedInterface/Neighbor. If the current best path  from
  3265.             SourceNet to the vertex goes through the calculating router,
  3266.             this parameter indicates the calculating router's  interface
  3267.             (or neighbor) which leads to the vertex.
  3268.  
  3269.         o   Cost. The cost, in terms of the OSPF link state  metric,  of
  3270.             the  current  best  path  from SourceNet to the vertex. Note
  3271.             that if the cost of the path is a combination of both exter-
  3272.             nal  type 2 and internal OSPF metrics, that the vertex' cost
  3273.             parameter reflects both cost components. Remember that  type
  3274.             2  cost component is always more significant than the type 1
  3275.             component.
  3276.  
  3277.         o   TTL. If the current best path from SourceNet to vertex  goes
  3278.             through  the calculating router, TTL is set to the number of
  3279.             routers between the calculating router and the vertex.  This
  3280.             includes  the  calculating  router, but does not include the
  3281.             vertex itself.
  3282.  
  3283.     12.2.  The SPF calculation
  3284.  
  3285.         This section details the construction of datagram  shortest-path
  3286.         trees.   Such  a tree describes the path of a multicast datagram
  3287.         as it traverses an OSPF area. For a given datagram, each  router
  3288.         in  an OSPF area builds an identical tree. A router connected to
  3289.         multiple areas builds a separate datagram shortest-path tree for
  3290.         each area.
  3291.  
  3292.         The datagram shortest-path tree is built by the Dijkstra or  SPF
  3293.         algorithm,  which  is the same algorithm used to discover OSPF's
  3294.         intra-area unicast routes (see  Section  16.1  of  [OSPF]).  The
  3295.         algorithm  is  stated  herein and in [OSPF] using graph-oriented
  3296.         language: vertices and links. Vertices are  the  area's  routers
  3297.         and  transit  networks,  and links are the router interfaces and
  3298.         point-to-point lines that connect them. Basically, the algorithm
  3299.         manipulates  two  lists  of vertices: the candidate list and the
  3300.         forming shortest-path tree. The candidate list consists of those
  3301.  
  3302.  
  3303.  
  3304. [Moy]                                                          [Page 59]
  3305.  
  3306. Internet Draft        Multicast Extensions to OSPF        September 1992
  3307.  
  3308.  
  3309.         vertices  to which paths have been discovered, but for which the
  3310.         optimality of the paths is yet unknown. At  each  cycle  of  the
  3311.         algorithm,  the  vertex  closest  to  the tree's root, yet still
  3312.         remaining on the candidate list, is  moved  from  the  candidate
  3313.         list  to  the shortest-path tree. Then the neighbors of the just
  3314.         processed   vertex   are   examined   for   possible    addition
  3315.         to/modification  of the candidate list. The algorithm terminates
  3316.         when the candidate list is empty.
  3317.  
  3318.         The datagram shortest-path tree for Area A is constructed in the
  3319.         following  steps.  The  datagram's SourceNet and its destination
  3320.         group Group G are inputs to the calculation (see Step 2a of Sec-
  3321.         tion 11). The datagram shortest-path tree also depends on the IP
  3322.         Type of service specified in the datagrams' IP Header.  However,
  3323.         a discussion of TOS is deferred until Section 12.2.8; all calcu-
  3324.         lations and costs in the current section  concern  TOS  0  only.
  3325.         Call  the  router performing the calculation Router RTX. At each
  3326.         step (and in the subordinate  Sections  12.2.1  through  12.2.8)
  3327.         LSAs  from  Area  A's  link  state database are examined. In all
  3328.         cases, any LSA having age MaxAge is ignored. The  main  body  of
  3329.         the  calculation  is  in Steps 4 and 5, which are repeated until
  3330.         the candidate list becomes empty:
  3331.  
  3332.         (1) Initialize the algorithm's data structures.  Clear  the  SPF
  3333.             tree.   Initialize the state of each vertex in Area A (i.e.,
  3334.             the area's routers and transit networks) to: Parent  set  to
  3335.             NULL,  Incoming  Link  Type  set  to  ILNone  and downstream
  3336.             interface/neighbor set to NULL.
  3337.  
  3338.         (2) Initialize the candidate list. One or more vertices are ini-
  3339.             tially  placed on the candidate list, depending on the loca-
  3340.             tion of SourceNet with respect to Area  A  and  Router  RTX.
  3341.             This  breaks  down into the following cases (which are named
  3342.             for later reference):
  3343.  
  3344.             o   Case SourceIntraArea: SourceNet belongs to  Area  A.  In
  3345.                 this  case, the candidate list is initialized as in Sec-
  3346.                 tion 12.2.1.
  3347.  
  3348.             o   Case SourceInterArea1: SourceNet belongs to an OSPF area
  3349.                 that  is  not  directly  attached to Router RTX. In this
  3350.                 case, the candidate list is initialized  as  in  Section
  3351.                 12.2.2.
  3352.  
  3353.             o   Case SourceInterArea2: SourceNet does not belong to Area
  3354.                 A, but it still belongs to an OSPF area that is directly
  3355.                 attached to Router RTX.  In  this  case,  the  candidate
  3356.                 list is initialized as in Section 12.2.3.
  3357.  
  3358.  
  3359.  
  3360. [Moy]                                                          [Page 60]
  3361.  
  3362. Internet Draft        Multicast Extensions to OSPF        September 1992
  3363.  
  3364.  
  3365.             o   Case SourceExternal: SourceNet is external to  the  OSPF
  3366.                 routing  domain, and Area A is not an OSPF stub area. In
  3367.                 this case, the candidate list is initialized as in  Sec-
  3368.                 tion 12.2.4.
  3369.  
  3370.             o   Case SourceStubExternal: SourceNet is  external  to  the
  3371.                 OSPF routing domain, and Area A is an OSPF stub area. In
  3372.                 this case, the candidate list is initialized as in  Sec-
  3373.                 tion 12.2.5.
  3374.  
  3375.             Two different routers in Area A may  select  different  ini-
  3376.             tialization  cases  above. For example, consider the network
  3377.             configuration shown in Figure 4. When calculating the Area 3
  3378.             datagram  shortest-path  tree for a datagram whose source is
  3379.             Network N7 (e.g., from Host H5) and destination is Group Ma,
  3380.             Router  RT11  would initialize the candidate list using Case
  3381.             SourceInterArea2 while Router RT9 would use  Case  SourceIn-
  3382.             terArea1.  Likewise,  if  Area  3 were configured as an OSPF
  3383.             stub area, Router RT11  would  use  Case  SourceStubExternal
  3384.             while  Router  RT9 would use Case SourceInterArea1! However,
  3385.             despite  the  possibility  of  routers  selecting  different
  3386.             cases, all routers in an area will still initialize the can-
  3387.             didate list (and in fact, run the rest of the  SPF  calcula-
  3388.             tion) identically.
  3389.  
  3390.         (3) If the candidate list is empty, the algorithm terminates.
  3391.  
  3392.         (4) Move closest candidate vertex  to  the  shortest-path  tree.
  3393.             Select  the  vertex on the candidate list that is closest to
  3394.             SourceNet (i.e., has the smallest Cost value). If there  are
  3395.             multiple   possibilities,   select   transit  networks  over
  3396.             routers. If there are still multiple  possibilities  remain-
  3397.             ing,  select  the  vertex having the highest Vertex ID. Call
  3398.             the chosen vertex Vertex V. Remove Vertex V from the  candi-
  3399.             date list, and install it on the shortest-path tree.
  3400.  
  3401.             Next, determine whether Vertex V has been labelled with  the
  3402.             Destination  multicast Group G. If so, it may cause the for-
  3403.             warding cache entry's list of outgoing  interfaces/neighbors
  3404.             to be updated. See Section 12.2.6 for details.
  3405.  
  3406.         (5) Examine Vertex V's neighbors for possible inclusion  in  the
  3407.             candidate  list.  Consider  Vertex V's LSA. Each link in the
  3408.             LSA describes a connection to a neighboring  router/network.
  3409.             If  the  link  connects  to a stub network, examine the next
  3410.             link in the LSA. Otherwise, the link (Link L) connects to  a
  3411.             neighboring  transit  node. Call this node Vertex W. Perform
  3412.             the following steps on Vertex W:
  3413.  
  3414.  
  3415.  
  3416. [Moy]                                                          [Page 61]
  3417.  
  3418. Internet Draft        Multicast Extensions to OSPF        September 1992
  3419.  
  3420.  
  3421.             a.  If W is already on the shortest-path tree, or if W's LSA
  3422.                 does  not contain a link back to vertex V, or if W's LSA
  3423.                 has LS age of MaxAge, or if W is  not  multicast-capable
  3424.                 (indicated  by  the  MC-bit in the LSA's Options field),
  3425.                 examine the next link in V's LSA.
  3426.  
  3427.             b.  Otherwise determine the cost to associate with the  link
  3428.                 from V to W.  If SourceNet belongs to Area A (Case Sour-
  3429.                 ceIntraArea in Step 2), use the cost listed for  Link  L
  3430.                 in  V's  LSA.  Otherwise,  use  the link's reverse cost:
  3431.                 Examine W's LSA, and find the cost listed for  the  link
  3432.                 connecting  back  to  V. Actually, when V and W are both
  3433.                 routers, there may be multiple links  between  them.  In
  3434.                 this  case,  use the smallest cost listed in W's LSA for
  3435.                 any of the links connecting back to  V  and  having  the
  3436.                 same  type  (as  specified  in  the  Router-LSA; must be
  3437.                 either: point-to-point connection or  virtual  link)  as
  3438.                 Link L[23].
  3439.  
  3440.             c.  Calculate the cost from SourceNet to W, when using  Link
  3441.                 L.  It  is  the sum of the cost of SourceNet to V (i.e.,
  3442.                 V's Cost parameter) plus the  link  cost  calculated  in
  3443.                 Step  5b. Let this sum be Cost C. If W is not yet on the
  3444.                 candidate list, install W on the candidate list, modify-
  3445.                 ing  its parameters as specified below (Step 5d). Other-
  3446.                 wise, W is on the candidate list already. In this  case,
  3447.                 if:
  3448.  
  3449.                 o   C is less than W's current cost, update W's  parame-
  3450.                     ters  on the candidate list as specified below (Step
  3451.                     5d).
  3452.  
  3453.                 o   C is equal to W's current cost, then  the  following
  3454.                     tiebreakers  are invoked. The type of Link L is com-
  3455.                     pared to W's current IncomingLinkType, and whichever
  3456.                     link  has  the preferred type is chosen (the prefer-
  3457.                     ence order of link types is listed in Section 12.1's
  3458.                     definition  of  IncomingLinkType). If the link types
  3459.                     are the same, then a link whose Parent is a  transit
  3460.                     network  is  preferred  over  one  whose Parent is a
  3461.                     router. If the links are still equivalent, the  link
  3462.                     whose  Parent  has  the  higher Vertex ID is chosen.
  3463.                     Whenever Link L is chosen, W's parameters are  modi-
  3464.                     fied  as  below  (Step  5d). Whenever the previously
  3465.                     discovered link is chosen, the next link in V's  LSA
  3466.                     is examined instead.
  3467.  
  3468.  
  3469.  
  3470.  
  3471.  
  3472. [Moy]                                                          [Page 62]
  3473.  
  3474. Internet Draft        Multicast Extensions to OSPF        September 1992
  3475.  
  3476.  
  3477.                 o   C is greater than W's current cost, examine the next
  3478.                     link in V's LSA.
  3479.  
  3480.             d.  At this point, a better candidate path has been found to
  3481.                 Vertex  W,  using  Link  L. Modify Vertex W's parameters
  3482.                 accordingly. W's Parent is set to Vertex V.  W's  Incom-
  3483.                 ingLinkType  is  set to ILVirtual if Link L is a virtual
  3484.                 link, otherwise IncomingLinkType is set to ILNormal. W's
  3485.                 Cost    parameter   is   set   to   C.   W's   TTL   and
  3486.                 AssociatedInterface/Neighbor parameters are set  accord-
  3487.                 ing to one of the following cases:
  3488.  
  3489.                 o   Vertex V is upstream of the calculating  router.  In
  3490.                     this case, Vertex W's TTL parameter is set to 0, and
  3491.                     its AssociatedInterface/Neighbor is set to NULL.
  3492.  
  3493.                 o   Vertex V is the calculating router itself.  In  this
  3494.                     case,  W's TTL parameter is set to 1. If Link L is a
  3495.                     virtual link,  W's  AssociatedInterface/Neighbor  is
  3496.                     set        to       NULL.       Otherwise,       W's
  3497.                     AssociatedInterface/Neighbor  is  set  to  the  non-
  3498.                     virtual  interface  connecting  V to W which has the
  3499.                     smallest cost value. Note that, in the reverse  cost
  3500.                     (inter-area  and inter-AS multicast) cases, this may
  3501.                     not be the interface corresponding to Link  L.  How-
  3502.                     ever,  since W is only concerned with the node it is
  3503.                     receiving the datagram from (the upstream node;  see
  3504.                     Section  11),  and not with the particular interface
  3505.                     the datagram is received on, V is free to  pick  the
  3506.                     sending interface when there are multiple connecting
  3507.                     links.
  3508.  
  3509.                 o   V is a transit network, and is  directly  downstream
  3510.                     from the calculating router (i.e., V's TTL is set to
  3511.                     1). W is then one of the calculating router's neigh-
  3512.                     bors. In this case, W's TTL parameter is also set to
  3513.                     1. If network V has been  configured  for  data-link
  3514.                     unicasting  (see  Section  B.2)  or  if  V is a non-
  3515.                     broadcast network, W's  AssociatedInterface/Neighbor
  3516.                     is  set  to  W itself (a neighbor of the calculating
  3517.                     router). Otherwise, W's AssociatedInterface/Neighbor
  3518.                     is set to the calculating router's interface to Net-
  3519.                     work V.
  3520.  
  3521.                 o   Vertex V is downstream from the calculating  router,
  3522.                     and  either a) V is a router or b) V's TTL parameter
  3523.                     is   greater   than   1.   In   these   cases,   W's
  3524.                     AssociatedInterface/Neighbor   parameter  is  copied
  3525.  
  3526.  
  3527.  
  3528. [Moy]                                                          [Page 63]
  3529.  
  3530. Internet Draft        Multicast Extensions to OSPF        September 1992
  3531.  
  3532.  
  3533.                     directly from V.  If V is a router, W's TTL  parame-
  3534.                     ter  is set to V's TTL parameter incremented by one.
  3535.                     If V is a transit network, W's TTL parameter is  set
  3536.                     directly to V's TTL parameter.
  3537.  
  3538.         (6) If the candidate list is non-empty, go to Step 4. Otherwise,
  3539.             the algorithm terminates.
  3540.  
  3541.         After the datagram shortest-path tree for Area  A  is  complete,
  3542.         the  calculating router (RTX) must decide whether Area A, out of
  3543.         all of RTX's attached areas,  determines  the  forwarding  cache
  3544.         entry's  upstream  node. This determination is described in Sec-
  3545.         tion 12.2.7.
  3546.  
  3547.         Examples of the above SPF calculation, with particular  emphasis
  3548.         on the tiebreaking rules, are given in Appendix C.
  3549.  
  3550.         12.2.1.  Candidate list Initialization: Case SourceIntraArea
  3551.  
  3552.             In this case, SourceNet belongs  to  Area  A.  This  can  be
  3553.             determined by looking up SourceNet in the OSPF routing table
  3554.             (see Section 11.1 of [OSPF]). When SourceNet belongs to Area
  3555.             A, the matching OSPF routing table entry will have Path-type
  3556.             of intra-area and its associated Area will be  Area  A  (see
  3557.             Section 11 of [OSPF]).
  3558.  
  3559.             The candidate list is then  initialized  as  follows.  Start
  3560.             with  the  LSA  listed  as Link State Origin in the matching
  3561.             OSPF routing table entry.  If this  LSA  is  not  multicast-
  3562.             capable  (i.e,  its  Options field has the MC-bit clear) the
  3563.             candidate list should be set to NULL. Otherwise, the  vertex
  3564.             identified  by  the  LSA is installed on the candidate list,
  3565.             setting its vertex parameters as  follows:  IncomingLinkType
  3566.             set  to  ILDirect,  Cost  set  to  0,  Parent  to  NULL  and
  3567.             AssociatedInterface/Neighbor to NULL.
  3568.  
  3569.             As a consequence of this initialization, note that if  Sour-
  3570.             ceNet  is  a  stub  network, then the datagram shortest-path
  3571.             tree will not actually be rooted at the datagram source, but
  3572.             will instead be rooted at the MOSPF router that attaches the
  3573.             stub network to the rest of the MOSPF system.  For  example,
  3574.             consider  the  network configuration shown in Figure 4. When
  3575.             calculating the Area2  datagram  shortest-path  tree  for  a
  3576.             datagram whose source is Network N7 (e.g., from Host H5) and
  3577.             destination is Group Ma, Router RT11 (and all other  routers
  3578.             attached  to  Area 2) will begin with the candidate list set
  3579.             to Router RT. As another example, the datagram shortest-path
  3580.             tree  pictured  in  Figure  3 is really rooted at Router RT3
  3581.  
  3582.  
  3583.  
  3584. [Moy]                                                          [Page 64]
  3585.  
  3586. Internet Draft        Multicast Extensions to OSPF        September 1992
  3587.  
  3588.  
  3589.             instead of Network N4.
  3590.  
  3591.         12.2.2.  Candidate list Initialization: Case SourceInterArea1
  3592.  
  3593.             In this case, SourceNet belongs to an OSPF area that is  not
  3594.             directly  attached to the calculating router (RTX). This can
  3595.             be determined by looking up SourceNet in  the  OSPF  routing
  3596.             table  (see Section 11.1 of [OSPF]); the matching OSPF rout-
  3597.             ing table entry will have Path-type of inter-area (see  Sec-
  3598.             tion 11 of [OSPF]).
  3599.  
  3600.             The candidate list is then initialized as  follows.  Examine
  3601.             the Area A summary-LSAs advertising SourceNet. For each such
  3602.             summary-LSA: if both a) the MC-bit is set in  the  LSA's  LS
  3603.             Options  field  and  b)  the advertised cost is not equal to
  3604.             LSInfinity, then the vertex representing the LSA's advertis-
  3605.             ing  area  border  router is added to the candidate list. An
  3606.             added vertex' state is initialized as: IncomingLinkType  set
  3607.             to  ILSummary,  Cost  to  whatever is advertised in the LSA,
  3608.             Parent to NULL and AssociatedInterface/Neighbor to NULL.
  3609.  
  3610.             For example, consider the  network  configuration  shown  in
  3611.             Figure  4.   When  calculating the Area 1 datagram shortest-
  3612.             path tree for a datagram whose source is Network  N7  (e.g.,
  3613.             from  Host H5) and destination is Group Ma, Router RT2 would
  3614.             initialize the candidate list to contain the two area border
  3615.             routers RT3 (with a cost of 20) and RT4 (with a cost of 19).
  3616.             See Figure 6 for more details.
  3617.  
  3618.         12.2.3.  Candidate list Initialization: Case SourceInterArea2
  3619.  
  3620.             In this case, SourceNet belongs to an OSPF area  other  than
  3621.             Area  A, but one that is still directly attached to the cal-
  3622.             culating router (RTX).  This can be determined by looking up
  3623.             SourceNet  in  the  OSPF  routing table (see Section 11.1 of
  3624.             [OSPF]); the matching OSPF routing  table  entry  will  have
  3625.             Path-type  of  intra-area (see Section 11 of [OSPF]) and its
  3626.             associated area will be different than Area A.
  3627.  
  3628.             The candidate list is then initialized in the following  two
  3629.             steps:
  3630.  
  3631.             (1) Find the Area A summary-LSA that best matches SourceNet,
  3632.                 excluding  those summary-LSAs specifying cost LSInfinity
  3633.                 or having unreachable Advertising Routers[24].  A match-
  3634.                 ing  summary-LSA  is  one  that  advertises  a  range of
  3635.                 addresses containing SourceNet; the best matching is  as
  3636.                 usual  the  most  specific match. Let SourceRange be the
  3637.  
  3638.  
  3639.  
  3640. [Moy]                                                          [Page 65]
  3641.  
  3642. Internet Draft        Multicast Extensions to OSPF        September 1992
  3643.  
  3644.  
  3645.                 network described by the best matching summary-LSA.
  3646.  
  3647.             (2) Similar to the logic in the SourceInterArea1 case, exam-
  3648.                 ine  all  the  Area A summary-LSAs which advertise Sour-
  3649.                 ceRange. For each such summary-LSA: if both a)  the  MC-
  3650.                 bit  is set in the LSA's Options field and b) the adver-
  3651.                 tised cost is not equal to LSInfinity, then  the  vertex
  3652.                 representing the LSA's advertising area border router is
  3653.                 added to the candidate list. An added vertex'  state  is
  3654.                 initialized  as: IncomingLinkType set to ILSummary, Cost
  3655.                 to whatever is advertised in the LSA, Parent to NULL and
  3656.                 AssociatedInterface/Neighbor to NULL.
  3657.  
  3658.             The reason why SourceRange is used, instead of simply  using
  3659.             SourceNet  (as  was  done in case SourceInterArea1), is that
  3660.             routing information may have been collapsed  at  area  boun-
  3661.             daries.  In  order  for Area A's area border routers and its
  3662.             internal routers to  construct  the  same  Area  A  datagram
  3663.             shortest-path  tree,  they  must both start at SourceRange -
  3664.             Area A's internal routers know nothing about SourceNet. Note
  3665.             that  SourceRange is not discovered simply by looking at the
  3666.             calculating router's configured set of area address  ranges,
  3667.             in  order to avoid dependence on the configured area address
  3668.             ranges being synchronized across all area border routers.
  3669.  
  3670.             For example, consider the  network  configuration  shown  in
  3671.             Figure  4.   When  calculating the Area 2 datagram shortest-
  3672.             path tree for a datagram whose source  is  Network  N11  and
  3673.             destination  is  Group Ma, Router RT11 would calculate Sour-
  3674.             ceRange to be the collection: Networks N9-N11 and  Host  H1.
  3675.             It  would  then  initialize  the  candidate  list to contain
  3676.             itself (RT11) only, with an associated Cost of 1 (since RT11
  3677.             is  advertising Networks N9-N11 and Host H1 in a summary-LSA
  3678.             with a cost of 1).
  3679.  
  3680.         12.2.4.  Candidate list Initialization: Case SourceExternal
  3681.  
  3682.             In this case, SourceNet is  external  to  the  OSPF  routing
  3683.             domain,  and  Area  A  is not an OSPF stub area. This can be
  3684.             determined by looking up SourceNet in the OSPF routing table
  3685.             (see  Section  11.1  of  [OSPF]);  the matching OSPF routing
  3686.             table entry will have Path-type of either external type 1 or
  3687.             external type 2.
  3688.  
  3689.             The candidate list is then initialized as follows. Note that
  3690.             an  attempt  may  be made to add a Vertex W to the candidate
  3691.             list when W already belongs to the candidate list. When this
  3692.             happens,  W's  vertex  parameters  are  updated  if the Cost
  3693.  
  3694.  
  3695.  
  3696. [Moy]                                                          [Page 66]
  3697.  
  3698. Internet Draft        Multicast Extensions to OSPF        September 1992
  3699.  
  3700.  
  3701.             parameter it would be added with is  better[25]  (closer  to
  3702.             SourceNet)  that  its previous value. When the costs are the
  3703.             same, W's parameters are still modified if the IncomingLink-
  3704.             Type    it    would   be   added   with   is   better   (see
  3705.             IncomingLinkType's definition in Section 12.1) than its pre-
  3706.             vious value.
  3707.  
  3708.             For each AS external-LSA advertising SourceNet, the  follow-
  3709.             ing steps are performed:
  3710.  
  3711.             o   If the AS external's MC-bit is clear or if its advertis-
  3712.                 ing router is not reachable, then the AS external-LSA is
  3713.                 not used. AS external-LSAs having their MC-bit  set  and
  3714.                 advertising a cost of LSInfinity can be used; these LSAs
  3715.                 describe paths that can be used for multicast,  but  not
  3716.                 unicast, data traffic (see Section 11.2).
  3717.  
  3718.             o   If the AS external-LSA's  Forwarding  address  field  is
  3719.                 0.0.0.0,  the following vertices are added to the candi-
  3720.                 date list. If the Advertising AS boundary  router  (call
  3721.                 it  ASBR) belongs to Area A, the vertex representing the
  3722.                 AS boundary router is added to the candidate list  using
  3723.                 parameters:  IncomingLinkType set to ILExternal, Cost to
  3724.                 whatever is advertised in the LSA, Parent  to  NULL  and
  3725.                 AssociatedInterface/Neighbor  to  NULL. Then, regardless
  3726.                 of whether ASBR belongs to  Area  A,  all  Area  A  area
  3727.                 border    routers   that   are   advertising   reachable
  3728.                 multicast-capable (MC-bit set) type 4  summary-LSAs  for
  3729.                 ASBR  are  added  to  the candidate list. Each such area
  3730.                 border router  is  added  with  the  parameters:  Incom-
  3731.                 ingLinkType  set  to ILSummary, Cost to the sum of what-
  3732.                 ever is advertised in the type 4  summary-LSA  plus  the
  3733.                 value  in  the  original AS external-LSA, Parent to NULL
  3734.                 and AssociatedInterface/Neighbor to NULL.
  3735.  
  3736.             o   If the AS external-LSA's  Forwarding  address  field  is
  3737.                 non-zero,  the  Forwarding  address  is looked up in the
  3738.                 OSPF routing table. Then processing breaks into  one  of
  3739.                 the following cases:
  3740.  
  3741.                 o   The Forwarding address is not usable. In this  case,
  3742.                     nothing is added to the candidate list. The Forward-
  3743.                     ing address is not usable if either it has no match-
  3744.                     ing  routing table entry, or if the matching routing
  3745.                     table entry is neither of  type  intra-area  nor  of
  3746.                     type inter-area.
  3747.  
  3748.  
  3749.  
  3750.  
  3751.  
  3752. [Moy]                                                          [Page 67]
  3753.  
  3754. Internet Draft        Multicast Extensions to OSPF        September 1992
  3755.  
  3756.  
  3757.                 o   The Forwarding address belongs to  Area  A[26]:  the
  3758.                     Forwarding address' matching routing table entry has
  3759.                     Path-type of intra-area and its associated  Area  is
  3760.                     Area  A. In this case, the vertex represented by the
  3761.                     matching routing table  entry's  Link  State  Origin
  3762.                     field  is added to the candidate list (assuming that
  3763.                     the vertex  is  multicast-capable).  The  vertex  is
  3764.                     added  with  the parameters: IncomingLinkType set to
  3765.                     ILExternal, Cost to whatever was advertised  in  the
  3766.                     original   AS   external-LSA,  Parent  to  NULL  and
  3767.                     AssociatedInterface/Neighbor to NULL.
  3768.  
  3769.                 o   The Forwarding address belongs to an  area  that  is
  3770.                     not  attached  to  Router  RTX[27]:  the  Forwarding
  3771.                     address' matching routing table entry has  Path-type
  3772.                     of  inter-area.  Call the network represented by the
  3773.                     matching routing table entry  ForwardNet.  For  each
  3774.                     reachable  multicast-capable summary-LSA (in Area A)
  3775.                     advertising ForwardNet, add  the  LSA's  advertising
  3776.                     area  border  router  to  the  candidate  list using
  3777.                     parameters: IncomingLinkType set to ILSummary,  Cost
  3778.                     to   the  sum  of  whatever  is  advertised  in  the
  3779.                     summary-LSA  plus  the  value  in  the  original  AS
  3780.                     external-LSA,      Parent      to      NULL      and
  3781.                     AssociatedInterface/Neighbor to NULL.
  3782.  
  3783.                 o   The Forwarding address belongs  to  another  one  of
  3784.                     Router  RTX's  attached  areas[28]:  the  Forwarding
  3785.                     address' matching routing table entry has  Path-type
  3786.                     of  intra-area and its associated Area is other than
  3787.                     Area A.  Call the network represented by the  match-
  3788.                     ing  routing  table entry ForwardNet. First find the
  3789.                     Area A  summary-LSA  that  best  matches  SourceNet,
  3790.                     excluding  those  summary-LSAs specifying cost LSIn-
  3791.                     finity or having  unreachable  Advertising  Routers.
  3792.                     Let  ForwardRange  be  the  network described by the
  3793.                     best matching summary-LSA. Then, for each  reachable
  3794.                     multicast-capable  summary-LSA (in Area A) advertis-
  3795.                     ing ForwardRange, add  the  LSA's  advertising  area
  3796.                     border  router  to  the candidate list using parame-
  3797.                     ters: IncomingLinkType set to ILSummary, Cost to the
  3798.                     sum  of  whatever  is  advertised in the summary-LSA
  3799.                     plus the value  in  the  original  AS  external-LSA,
  3800.                     Parent  to  NULL and AssociatedInterface/Neighbor to
  3801.                     NULL.
  3802.  
  3803.             The above calculation can be restated as  follows.  Each  of
  3804.             Area   A's  inter-area  multicast  forwarders  and  inter-AS
  3805.  
  3806.  
  3807.  
  3808. [Moy]                                                          [Page 68]
  3809.  
  3810. Internet Draft        Multicast Extensions to OSPF        September 1992
  3811.  
  3812.  
  3813.             multicast  forwarders  are   examined.   Those   that   have
  3814.             multicast-capable  paths to SourceNet (represented as either
  3815.             a multicast-capable AS external link or the concatenation of
  3816.             a  type  4  summary link and a multicast-capable AS external
  3817.             link) are added to the candidate list  as  router  vertices.
  3818.             (It is possible that, when considering a router that is both
  3819.             an inter-area multicast forwarder and an inter-AS  multicast
  3820.             forwarder,  two  equal cost paths exist to SourceNet, one an
  3821.             AS external link and the other a concatenation of a  type  4
  3822.             summary link and an AS external link. In this case, the con-
  3823.             catenation of the summary link and the AS external  link  is
  3824.             preferred).  The  added  vertex'  state  is  set as follows:
  3825.             IncomingLinkType set to ILSummary if the path is represented
  3826.             as a concatenation of a type 4 summary link and an AS exter-
  3827.             nal link, IncomingLinkType set to ILExternal otherwise, Cost
  3828.             set  to  the  cost of the shortest path from vertex to Sour-
  3829.             ceNet, Parent set to NULL  and  AssociatedInterface/Neighbor
  3830.             set to NULL.
  3831.  
  3832.             For example, consider the  network  configuration  shown  in
  3833.             Figure  4.   When  calculating the Area 2 datagram shortest-
  3834.             path tree for a datagram whose source  is  Network  N14  and
  3835.             destination  is  Group  Ma, the candidate list would be ini-
  3836.             tialized to the two routers RT7 at a cost of 14 and RT10  at
  3837.             a  cost of 19. This assumes that the external costs pictured
  3838.             in Figure 4 are external Type 1s.
  3839.  
  3840.         12.2.5.  Candidate list  Initialization:  Case  SourceStubExter-
  3841.             nal
  3842.  
  3843.             In this case, SourceNet is  external  to  the  OSPF  routing
  3844.             domain,  and Area A is an OSPF stub area. This can be deter-
  3845.             mined by looking up SourceNet in the OSPF routing table (see
  3846.             Section  11.1  of  [OSPF]);  the matching OSPF routing table
  3847.             entry will have Path-type  of  either  external  type  1  or
  3848.             external type 2.
  3849.  
  3850.             The candidate list is then  initialized  similarly  to  case
  3851.             SourceInterArea1.   The   Area  A  summary-LSAs  advertising
  3852.             DefaultDestination are examined. For each  such  summary-LSA
  3853.             having both its MC-bit set and its advertised cost not equal
  3854.             to LSInfinity, the vertex representing the LSA's advertising
  3855.             area  border router is added to the candidate list. An added
  3856.             vertex' state is initialized  as:  IncomingLinkType  set  to
  3857.             ILSummary, Cost to whatever is advertised in the LSA, Parent
  3858.             to NULL and AssociatedInterface/Neighbor to NULL.
  3859.  
  3860.  
  3861.  
  3862.  
  3863.  
  3864. [Moy]                                                          [Page 69]
  3865.  
  3866. Internet Draft        Multicast Extensions to OSPF        September 1992
  3867.  
  3868.  
  3869.             The most likely outcome of the above is  that  all  of  stub
  3870.             Area  A's  inter-area multicast forwarders will be installed
  3871.             on the candidate list, with appropriate costs.
  3872.  
  3873.         12.2.6.  Processing labelled vertices
  3874.  
  3875.             When  encountered  during  the  SPF  calculation,   vertices
  3876.             labelled  with the destination multicast group (Group G) may
  3877.             cause  the  forwarding  cache  entry's  list  of  downstream
  3878.             interfaces/neighbors  to  be modified.  A Vertex V in Area A
  3879.             is labelled with Group G if and only if at least one of  the
  3880.             following holds:
  3881.  
  3882.             (1) V is a router, and its router-LSA indicates that it is a
  3883.                 wild-card   multicast  receiver  (i.e.,  bit  W  in  its
  3884.                 router-LSA is set). This will be true whenever V  is  an
  3885.                 inter-area or inter-AS multicast forwarder.
  3886.  
  3887.             (2) V is listed in the body of a  group  membership-LSA.  In
  3888.                 particular,  find the originator of Vertex V's LSA; call
  3889.                 it Router Y. Then find the group-membership-LSA in  Area
  3890.                 A's  link state database which has Link State ID = Group
  3891.                 G and Advertising Router = Router Y (see  Section  A.3).
  3892.                 If  this group-membership-LSA exists, and if Vertex V is
  3893.                 listed in the body of the LSA (see Sections 10 and A.3),
  3894.                 then Vertex V is labelled with Group G.
  3895.  
  3896.             When Vertex V is added to the shortest-path tree in  Step  3
  3897.             of Section 12.2, and if Vertex V is both downstream from the
  3898.             calculating       router       (i.e.,       Vertex       V's
  3899.             AssociatedInterface/Neighbor  is non-NULL) and labelled with
  3900.             Group G, then  Vertex  V's  AssociatedInterface/Neighbor  is
  3901.             added  to  the  forwarding  cache entry's list of downstream
  3902.             interfaces/neighbors. In addition, Vertex V's TTL  value  is
  3903.             attached  to the added downstream interface/neighbor. If the
  3904.             particular interface/neighbor had already been added to  the
  3905.             list  of downstream interfaces/neighbors, the list is simply
  3906.             modified by setting the downstream interface/neighbor's  TTL
  3907.             value  to  the  minimum of its existing TTL value and Vertex
  3908.             V's TTL value.
  3909.  
  3910.         12.2.7.  Merging datagram shortest-path trees
  3911.  
  3912.             After the datagram shortest-path tree for  Area  A  is  com-
  3913.             plete, the calculating router (RTX) must decide whether Area
  3914.             A, out of all of its attached areas, determines the forward-
  3915.             ing  cache entry's upstream node.  This is done by examining
  3916.             RTX's position on the Area A  datagram  shortest-path  tree,
  3917.  
  3918.  
  3919.  
  3920. [Moy]                                                          [Page 70]
  3921.  
  3922. Internet Draft        Multicast Extensions to OSPF        September 1992
  3923.  
  3924.  
  3925.             which  is  in  turn  described  by  RTX's Area A Vertex data
  3926.             structure. If RTX's vertex IncomingLinkType is either ILNone
  3927.             (RTX  is not on the tree), ILVirtual or ILSummary, then some
  3928.             area other than Area A will  determine  the  upstream  node.
  3929.             Otherwise, Area A might possibly determine the upstream node
  3930.             (i.e., may be selected the RootArea), depending on the  fol-
  3931.             lowing tiebreakers[29]:
  3932.  
  3933.             o   If RootArea has not been set, then set RootArea to  Area
  3934.                 A.  Otherwise, compare the present RootArea to Area A in
  3935.                 the following:
  3936.  
  3937.             o   Choose the area that is "nearest to the source". Nearest
  3938.                 to the source depends on each area's candidate list ini-
  3939.                 tialization case, as it occurs  in  Step  2  of  Section
  3940.                 12.2.  The  initialization  cases,  listed  in  order of
  3941.                 decreasing preference  (or  nearest  to  farthest)  are:
  3942.                 SourceIntraArea,  SourceInterArea1,  SourceExternal  and
  3943.                 SourceStubExternal. Areas whose candidate list initiali-
  3944.                 zation  falls  into case SourceInterArea2 are never used
  3945.                 as the RootArea. As an  example,  consider  the  network
  3946.                 configuration  shown  in  Figure 4. When calculating the
  3947.                 datagram shortest-path tree for a datagram whose  source
  3948.                 is  Network  N7  (e.g., from Host H5) and destination is
  3949.                 Group Ma, Router RT11 would set its RootArea to  Area  2
  3950.                 (Case SourceIntraArea) instead of Area 3 (Case SourceIn-
  3951.                 terArea2) or the backbone Area 0 (Case SourceInterArea).
  3952.  
  3953.             o   If there are still two equally good areas,  and  one  of
  3954.                 them is the backbone, set RootArea to the backbone (Area
  3955.                 0).
  3956.  
  3957.             o   If there are still two equally good areas, set  RootArea
  3958.                 to  the  area whose datagram shortest-path tree provides
  3959.                 the shortest path from SourceNet to RTX. This is a  com-
  3960.                 parison of RTX's Vertex parameter Cost in the two areas.
  3961.  
  3962.             o   If there are still two equally good areas, set  RootArea
  3963.                 to one with the highest OSPF Area ID.
  3964.  
  3965.             If the above has set the RootArea to be Area A, the forward-
  3966.             ing  cache  entry's  upstream  node must be set accordingly.
  3967.             This setting depends on the IncomingLinkType in RTX's Area A
  3968.             Vertex  structure. If IncomingLinkType is equal to ILDirect,
  3969.             the upstream  node  is  set  to  the  appropriate  directly-
  3970.             connected  stub  network. If equal to ILNormal, the upstream
  3971.             node is set to the Parent  field  in  RTX's  Area  A  Vertex
  3972.             structure.  If equal to ILExternal, the upstream node is set
  3973.  
  3974.  
  3975.  
  3976. [Moy]                                                          [Page 71]
  3977.  
  3978. Internet Draft        Multicast Extensions to OSPF        September 1992
  3979.  
  3980.  
  3981.             to the placeholder EXTERNAL.
  3982.  
  3983.         12.2.8.  TOS considerations
  3984.  
  3985.             The previous sections 12.2 through 12.2.7 described the con-
  3986.             struction  of  a  TOS 0 (default TOS) datagram shortest-path
  3987.             tree. However, in a TOS-capable router, a separate tree  may
  3988.             be  built  for  each TOS. If a TOS-capable router receives a
  3989.             multicast datagram that specifies a non-zero TOS X, it first
  3990.             builds  the TOS 0 datagram shortest-path tree.  Then, if all
  3991.             the routers on the pruned tree are TOS-capable,  a  separate
  3992.             TOS  X datagram shortest-path tree is calculated[30]. Other-
  3993.             wise, the TOS 0 tree is used for all  datagrams,  regardless
  3994.             of their specified TOS.
  3995.  
  3996.             To determine whether there are any TOS-incapable routers  on
  3997.             the  pruned  TOS 0 tree, the following additions are made to
  3998.             Section 12.1's tree calculation:
  3999.  
  4000.             o   A new piece of state information is added to  each  ver-
  4001.                 tex:   TOS-capable  path.  This  indicates  whether  the
  4002.                 present path from SourceNet to vertex, as represented on
  4003.                 the  datagram  shortest-path  tree,  contains  only TOS-
  4004.                 capable routers.
  4005.  
  4006.             o   The TOS-capable path parameter is  calculated  when  the
  4007.                 vertex is first added to the candidate list and recalcu-
  4008.                 lated when/if the vertex' position on the candidate list
  4009.                 is modified (see Section 12.1's Step 2 and Step 5d). The
  4010.                 parameter is set to TRUE if both the  vertex  itself  is
  4011.                 TOS-capable  and  the vertex' parent has its TOS-capable
  4012.                 path parameter set to TRUE; otherwise, TOS-capable  path
  4013.                 is set to FALSE.
  4014.  
  4015.             o   All routers on the TOS 0 datagram shortest-path tree are
  4016.                 TOS-capable  if  and only if, whenever a vertex labelled
  4017.                 with Group G is added to the shortest-path tree (Section
  4018.                 12.2.6),  the  value  of  the  vertex'  TOS-capable path
  4019.                 parameter is TRUE.
  4020.  
  4021.             The source of the multicast datagram is always located using
  4022.             a  TOS  0 routing table lookup, regardless of the datagram's
  4023.             TOS classification (see Section 11.2).  If  the  calculating
  4024.             router  is  not  capable of TOS-based routing, it calculates
  4025.             only TOS 0 datagram shortest-path trees, and  uses  them  to
  4026.             route  datagrams  independent of TOS value.  Otherwise, when
  4027.             calculating the TOS X datagram shortest-path tree, the algo-
  4028.             rithm in Section 12.1 is used, with the modifications listed
  4029.  
  4030.  
  4031.  
  4032. [Moy]                                                          [Page 72]
  4033.  
  4034. Internet Draft        Multicast Extensions to OSPF        September 1992
  4035.  
  4036.  
  4037.             below.
  4038.  
  4039.             o   When calculating RangeNet and ForwardRange  in  Sections
  4040.                 12.2.3 and 12.2.4 respectively, only summary-LSAs having
  4041.                 TOS 0 cost of LSInfinity are excluded  (no  change  from
  4042.                 the  TOS  0  case). However, when adding vertices to the
  4043.                 candidate list in Sections 12.2.2  through  12.2.5,  the
  4044.                 TOS X cost of the summary links and/or AS external links
  4045.                 (and not the TOS 0 cost) are reflected in the added ver-
  4046.                 tices' Cost parameter.
  4047.  
  4048.             o   In Step 5 of Section 12.2, the TOS X cost of Link L  (in
  4049.                 the appropriate direction) is used, not the TOS 0.
  4050.  
  4051.             o   Non-TOS-routers are not added to the candidate list, and
  4052.                 are thus excluded from the trees.
  4053.  
  4054.         12.2.9.  Comparison to the unicast SPF calculation
  4055.  
  4056.             There are many similarities between the  construction  of  a
  4057.             multicast datagram's shortest-path trees in Section 12.2 and
  4058.             OSPF's intra-area  route  calculation  for  unicast  traffic
  4059.             (Section  16.1 of [OSPF]). Both have been described in terms
  4060.             of Dijkstra's algorithm. However,  there  are  some  differ-
  4061.             ences. The major differences are listed below:
  4062.  
  4063.             o   In the multicast case, the datagram SPF  calculation  is
  4064.                 rooted  at  the  datagram's source. In the unicast case,
  4065.                 each router is the root of its  own  unicast  intra-area
  4066.                 SPF calculation.
  4067.  
  4068.             o   In the multicast case, the datagram  shortest-path  tree
  4069.                 is  a true tree; i.e., between any two nodes on the tree
  4070.                 there is one path. However, due  to  the  provision  for
  4071.                 equal-cost multipath in [OSPF], the unicast SPF calcula-
  4072.                 tion may add additional links to the shortest-path tree.
  4073.  
  4074.             o   In order to  avoid  unwanted  replication  of  multicast
  4075.                 datagrams,  MOSPF  ensures that, for any given datagram,
  4076.                 each router builds the exact same datagram shortest-path
  4077.                 tree.  This  forces two differences from the unicast SPF
  4078.                 calculation. First, it  eliminates  the  possibility  of
  4079.                 equal-cost  multipath.  Secondly,  when the MOSPF system
  4080.                 contains multiple alternate paths,  the  algorithm  must
  4081.                 ensure  that each MOSPF router deterministically chooses
  4082.                 the same  alternative.  For  this  reason,  tie-breaking
  4083.                 mechanisms  have been specified in Steps 3 and 4 of Sec-
  4084.                 tion 12.1.
  4085.  
  4086.  
  4087.  
  4088. [Moy]                                                          [Page 73]
  4089.  
  4090. Internet Draft        Multicast Extensions to OSPF        September 1992
  4091.  
  4092.  
  4093.             o   The calculation of datagram shortest  path  trees  takes
  4094.                 into account only those links that connect transit nodes
  4095.                 (i.e, router to router  or  router  to  transit  network
  4096.                 links).  The  unicast SPF calculation in Section 16.1 of
  4097.                 [OSPF] must additionally examine links to stub networks,
  4098.                 although  this  is  done after all the transit links are
  4099.                 examined.
  4100.  
  4101.             o   While both the multicast and unicast trees select  shor-
  4102.                 test paths on the basis of the OSPF metric, the datagram
  4103.                 shortest-path trees also keep track of  the  TTL  values
  4104.                 between  the root (datagram source) and all destinations
  4105.                 (group members). This enables more efficient implementa-
  4106.                 tion of IP multicast's "expanding ring search" (see Sec-
  4107.                 tion 2.3.4).
  4108.  
  4109.             o   In the multicast case, the algorithm is sometimes forced
  4110.                 to  use  the  link  state cost for the reverse direction
  4111.                 (i.e, the  cost  towards,  instead  of  away  from,  the
  4112.                 source).  This is because the costs of OSPF summary-LSAs
  4113.                 and AS external-LSAs, which sometime form  the  base  of
  4114.                 the  multicast  datagram shortest-path trees, are speci-
  4115.                 fied in the reverse direction (from the  multicast  per-
  4116.                 spective).
  4117.  
  4118.             o   There are potentially many more  datagram  shortest-path
  4119.                 trees  that  need  to be calculated (one for each source
  4120.                 net, destination group and TOS  combination),  than  the
  4121.                 limited  number of unicast SPF trees (one per each TOS).
  4122.                 This is the main reason that the datagram  shortest-path
  4123.                 trees  are  calculated  on demand; it is hoped that this
  4124.                 will spread  the  cost  of  the  SPF  calculations  over
  4125.                 time[31].
  4126.  
  4127.             o   The way that the two algorithms handle TOS is different.
  4128.                 In  the  multicast  case,  if  a  TOS-incapable  node is
  4129.                 encountered during the calculation of the TOS 0 datagram
  4130.                 shortest-path  tree,  the  TOS  0 datagram shortest-path
  4131.                 tree is used instead of trying to build the TOS  X  tree
  4132.                 (see  Section  12.2.8).  In  the unicast case, the TOS X
  4133.                 tree is built and TOS-incapable nodes are added  to  the
  4134.                 TOS X SPF tree using TOS 0 costs.
  4135.  
  4136.     12.3.  Adding local database entries to the forwarding cache
  4137.  
  4138.         After the datagram shortest-path trees have been built for  each
  4139.         attached  area,  the forwarding cache has an upstream node and a
  4140.         list of downstream interfaces. In order to ensure  the  delivery
  4141.  
  4142.  
  4143.  
  4144. [Moy]                                                          [Page 74]
  4145.  
  4146. Internet Draft        Multicast Extensions to OSPF        September 1992
  4147.  
  4148.  
  4149.         of  the multicast datagram to group members on directly attached
  4150.         networks, the local group database (Section 8.4)  must  then  be
  4151.         scanned  for  possible addition to the list of downstream inter-
  4152.         faces. All local group database entries having Group G as Multi-
  4153.         castGroup  are  examined.   Suppose  [Group G, Network N] is one
  4154.         such entry. If the  calculating  router  (RTX)  is  Network  N's
  4155.         Designated  Router,  then  RTX's Network N interface is added to
  4156.         the list of outgoing interfaces, with a TTL of 1. If the Network
  4157.         N  interface  was already present in the list of outgoing inter-
  4158.         faces, its TTL is simply set to 1.
  4159.  
  4160.         For example, consider the network configuration shown in  Figure
  4161.         4  when  calculating  the  forwarding cache entry for a datagram
  4162.         whose source is Network N4 (e.g., from Host H2) and  destination
  4163.         is  Group  Mb. After calculating the datagram shortest-path tree
  4164.         for Area 1, Router RT2 would have set it upstream node  to  Net-
  4165.         work  N3 and its list of downstream interfaces to NULL. But then
  4166.         looking at its local group database, it would add its Network N2
  4167.         interface with a TTL of 1 to the list of downstream interfaces.
  4168.  
  4169. 13.  Maintaining the forwarding cache
  4170.  
  4171.     A MOSPF router may, for resource reasons, limit the size of its for-
  4172.     warding  cache.  Old  cache  entries  can be purged to make room for
  4173.     newer entries, since they can always be rebuilt if  necessary.  This
  4174.     memo does not specify an algorithm to select which entries to purge.
  4175.     However, care should be taken to ensure that any particular entry is
  4176.     not  continually  built  and  then purged (i.e., thrashing should be
  4177.     avoided).
  4178.  
  4179.     The building of the forwarding cache has been  previously  described
  4180.     in  Section  12.  There are events that force one or more forwarding
  4181.     cache entries to be deleted and then rebuilt:
  4182.  
  4183.     o   When the internal topology of the MOSPF system changes, all for-
  4184.         warding  cache entries must be deleted. This is because internal
  4185.         topology  changes  may  invalidate  the  previously   calculated
  4186.         datagram shortest-path trees. Since the multicast routing calcu-
  4187.         lation depends on the result of  the  unicast  routing  calcula-
  4188.         tions,  the forwarding cache should be cleared after the unicast
  4189.         routing table is rebuilt.  Internal topology changes  are  indi-
  4190.         cated  when  both  a) a new instance of either a router-LSA or a
  4191.         network-LSA is received and b) the contents of  the  new  adver-
  4192.         tisement  (other  than  the  LS  age,  LS sequence number and LS
  4193.         checksum fields) is different from the previous instance.  Among
  4194.         other  things,  this  covers routers and links going up or down,
  4195.         and also routers that change from being  multicast-incapable  to
  4196.         being multicast-capable.
  4197.  
  4198.  
  4199.  
  4200. [Moy]                                                          [Page 75]
  4201.  
  4202. Internet Draft        Multicast Extensions to OSPF        September 1992
  4203.  
  4204.  
  4205.     o   When a type 3 summary-LSA (network summary)  changes,  all  for-
  4206.         warding cache entries must be examined. Those entries specifying
  4207.         datagram sources belonging to the range of  addresses  described
  4208.         by  the updated summary-LSA must be deleted. See Sections 12.2.3
  4209.         and 12.2.5.
  4210.  
  4211.     o   When the content of an AS external-LSA changes,  all  forwarding
  4212.         cache  entries specifying the named external network as datagram
  4213.         source must be deleted.
  4214.  
  4215.     o   When membership in a multicast  group  changes,  all  forwarding
  4216.         cache  entries  for  the particular group must be deleted. Group
  4217.         membership changes are indicated when either a) the content of a
  4218.         group-membership-LSA  changes  or b) an entry in the local group
  4219.         database (see Section 8.4) changes.
  4220.  
  4221.     o   When the cost to an  AS  boundary  router  or  to  a  forwarding
  4222.         address  specified  by one or more AS external-LSAs changes, all
  4223.         forwarding cache  entries  specifying  an  external  network  as
  4224.         datagram  source  must be deleted. In this case, potentially all
  4225.         inter-AS datagram shortest-path trees have been invalidated. The
  4226.         forwarding  cache  entries  should be deleted after the new best
  4227.         cost to the AS boundary router/forwarding address has been  cal-
  4228.         culated.
  4229.  
  4230. 14.  Other additions to the OSPF specification
  4231.  
  4232.     MOSPF requires some modifications to the  base  OSPF  protocol.  All
  4233.     these  modifications are backward-compatible. A router running MOSPF
  4234.     will still interoperate with an OSPF router when forwarding  unicast
  4235.     traffic.  Most  of  the modifications have been described earlier in
  4236.     this document. This section collects together  those  changes  which
  4237.     have yet to be mentioned, organizing them by the affected Section of
  4238.     [OSPF].
  4239.  
  4240.     14.1.  The Designated Router
  4241.  
  4242.         This functionality is described in Section  7.3  of  [OSPF].  In
  4243.         OSPF,  a  network's Designated Router has two specialized roles.
  4244.         First, it originates the network's network-LSA. Second, it  con-
  4245.         trols the flooding on the network, in that all of the routers on
  4246.         the network synchronize with  the  Designated  Router  (and  the
  4247.         backup Designated Router) only.  For these reasons[32], when one
  4248.         or more of the network's routers are running MOSPF,  the  Desig-
  4249.         nated  Router should be running MOSPF also.  This can be ensured
  4250.         by assigning all non-multicast routers the DRPriority of 0.
  4251.  
  4252.  
  4253.  
  4254.  
  4255.  
  4256. [Moy]                                                          [Page 76]
  4257.  
  4258. Internet Draft        Multicast Extensions to OSPF        September 1992
  4259.  
  4260.  
  4261.         In MOSPF, the Designated Router also has the additional  respon-
  4262.         sibility of monitoring the network's multicast group membership.
  4263.         This is done by periodically sending  Host  Membership  Queries,
  4264.         and  receiving  Host Membership Reports in response (see Section
  4265.         9). This is yet another reason why the Designated Router must be
  4266.         multicast-capable.
  4267.  
  4268.     14.2.  Sending Hello packets
  4269.  
  4270.         This functionality is described in  Section  9.5  of  [OSPF].  A
  4271.         MOSPF  router  sets the MC-bit in the Options field of its Hello
  4272.         packets. This indicates that the router is multicast-capable; it
  4273.         does  not  necessarily indicate the state of the Hello's sending
  4274.         interface's IPMulticastForwarding parameter (see  Section  B.2).
  4275.         Setting  the MC-bit in Hellos is done strictly for informational
  4276.         purposes. Neighbors receiving the router's Hello packets do  not
  4277.         act  on  the  state  of  the  MC-bit.  A  neighbor's  multicast-
  4278.         capability is learned instead during the Database Exchange  Pro-
  4279.         cess (see Section 14.4).
  4280.  
  4281.     14.3.  The Neighbor state machine
  4282.  
  4283.         This functionality is described in Section 10.3 of [OSPF].  When
  4284.         a  neighbor enters state Exchange, the neighbor Database summary
  4285.         list is initialized (see the OSPF neighbor FSM entry for  State:
  4286.         ExStart  and Event: NegDone). This list describes of the portion
  4287.         of the router's link state database that needs to  be  synchron-
  4288.         ized  with  the neighbor.  Group-membership-LSAs are included in
  4289.         the neighbor Database summary list if and only if  the  neighbor
  4290.         is  multicast-capable.  The  neighbor's  multicast capability is
  4291.         learned by examining the neighbor's Database Description packets
  4292.         (see Section 14.4).
  4293.  
  4294.     14.4.  Receiving Database Description packets
  4295.  
  4296.         This functionality is described in Section  10.6  of  [OSPF].  A
  4297.         neighbor's  multicast-capability  is  learned  through  received
  4298.         Database Description  packets.  When  the  Database  Description
  4299.         packet is received that transitions the neighbor from ExStart to
  4300.         Exchange, the state of the MC-bit in the packet's Options  field
  4301.         is  examined.  The  neighbor is multicast-capable if and only if
  4302.         the MC-bit is set.
  4303.  
  4304.         The neighbor's  multicast  capability  controls  whether  group-
  4305.         membership-LSAs  are summarized to the neighbor during the Data-
  4306.         base Exchange process (see Section  14.3),  and  whether  group-
  4307.         membership-LSAs  are flooded to the neighbor during the flooding
  4308.         process (see Section 10.2).
  4309.  
  4310.  
  4311.  
  4312. [Moy]                                                          [Page 77]
  4313.  
  4314. Internet Draft        Multicast Extensions to OSPF        September 1992
  4315.  
  4316.  
  4317.     14.5.  Sending Database Description packets
  4318.  
  4319.         This functionality is described in Section  10.8  of  [OSPF].  A
  4320.         MOSPF  router  sets the MC-bit in the Options field of its Data-
  4321.         base Description packets. This  indicates  that  the  router  is
  4322.         multicast-capable; it does not necessarily indicate the state of
  4323.         the Hello's sending interface's IPMulticastForwarding  parameter
  4324.         (see  Section  B.2).  Setting the MC-bit in Database Description
  4325.         packets indicates the router's multicast-capability to its adja-
  4326.         cent neighbors.
  4327.  
  4328.         Note that when a router goes  from  being  multicast-capable  to
  4329.         multicast-incapable,  or  vice-versa, it must indicate this fact
  4330.         to its adjacent neighbors by restarting the Database Description
  4331.         process  (i.e., rolling back the state of all adjacent neighbors
  4332.         to Exstart).
  4333.  
  4334.     14.6.  Originating Router-LSAs
  4335.  
  4336.         This functionality is described in Section 12.4.1 of  [OSPF].  A
  4337.         MOSPF  router  sets  the  MC-bit  in  the  Options  field of its
  4338.         router-LSA. This allows the router to be  included  in  datagram
  4339.         shortest-path trees (see Step 4b of Section 12.1).
  4340.  
  4341.         In addition, MOSPF has introduced a new flag in the router-LSA's
  4342.         rtype  field:  the  W-bit.  When the W-bit is set, the router is
  4343.         included on all datagram shortest-path trees, regardless of mul-
  4344.         ticast  group  (see  Section  12.2.6). Such a router is called a
  4345.         wild-card multicast receiver. The router sets the  W-bit  if  it
  4346.         has  been  configured  as an inter-area multicast forwarder (see
  4347.         Section 3.1), or as an inter-AS multicast forwarder (see Section
  4348.         4).
  4349.  
  4350.         A router must originate a new instance of its  router-LSA  when-
  4351.         ever  an  event  occurs  that would invalidate the LSA's current
  4352.         contents. In particular, if the router's multicast capability or
  4353.         its  capability  to  function as either a inter-area or inter-AS
  4354.         multicast forwarder  changes,  its  router-LSA  must  be  reori-
  4355.         ginated.
  4356.  
  4357.     14.7.  Originating Network-LSAs
  4358.  
  4359.         This functionality is described in Section 12.4.2 of [OSPF].  In
  4360.         OSPF,  a  transit  network's  network-LSA  is  originated by the
  4361.         network's Designated Router. The Designated Router sets the  MC-
  4362.         bit  in the Options field of the network-LSA if and only if both
  4363.         a) the Designated Router  is  multicast-capable  (i.e.,  running
  4364.         MOSPF)    and    b)    the   Designated   Router's   interface's
  4365.  
  4366.  
  4367.  
  4368. [Moy]                                                          [Page 78]
  4369.  
  4370. Internet Draft        Multicast Extensions to OSPF        September 1992
  4371.  
  4372.  
  4373.         IPMulticastForwarding parameter has been set to data-link multi-
  4374.         cast  (see Section B.2).When the network-LSA has the MC-bit set,
  4375.         the network is included in  datagram  shortest-path  trees  (see
  4376.         Section 12.2.6).
  4377.  
  4378.         It is intended that all routers attached  to  a  common  network
  4379.         agree  on  the  network's IPMulticastForwarding capability. How-
  4380.         ever, this agreement is not enforced. When there  are  disagree-
  4381.         ments, incorrect routing of multicast datagrams can result.
  4382.  
  4383.     14.8.  Originating Summary-LSAs
  4384.  
  4385.         This functionality is described in  Section  12.4.3  of  [OSPF].
  4386.         Inter-area  multicast  forwarders  always  set the MC-bit in the
  4387.         Options field of their summary-LSAs, regardless of  whether  the
  4388.         path described by the summary-LSA is actually multicast-capable.
  4389.         Indeed, it is possible that there is no  multicast-capable  path
  4390.         to  the  described  destination.  All  other area border routers
  4391.         (ones that are not inter-area multicast  forwarders)  clear  the
  4392.         MC-bit in the Options field of their summary-LSAs.
  4393.  
  4394.         If its MC-bit is clear, the summary-LSA will not  be  used  when
  4395.         initializing  the  candidate list in Sections 12.2.2, 12.2.3 and
  4396.         12.2.5.
  4397.  
  4398.     14.9.  Originating AS external-LSAs
  4399.  
  4400.         This functionality is described in  Section  12.4.4  of  [OSPF].
  4401.         Unlike  in  summary-LSAs, an inter-AS multicast forwarder should
  4402.         clear the  MC-bit  in  the  Options  field  of  one  of  its  AS
  4403.         external-LSAs, if it is known that there is no multicast-capable
  4404.         path from the described destination to the router  itself.  This
  4405.         knowledge  may possibly be obtained, for example, from an inter-
  4406.         AS multicast routing algorithm (see Section 4).  If the inter-AS
  4407.         multicast  forwarder  is  unsure  of whether a multicast-capable
  4408.         path exists between the described  destination  and  the  router
  4409.         itself,  the  MC-bit  should be set in the AS external-LSA.  All
  4410.         other AS boundary routers (ones that are not inter-AS  multicast
  4411.         forwarders)  clear  the  MC-bit in the Options field of their AS
  4412.         external-LSAs.
  4413.  
  4414.         If its MC-bit is clear, the AS external-LSA  will  not  be  used
  4415.         when initializing the candidate list in Section 12.2.4.
  4416.  
  4417.         When multicast connectivity to an external  destination  exists,
  4418.         but  no  unicast  connectivity,  an  AS external-LSA can be ori-
  4419.         ginated having its MC-bit set and specifying a cost of  LSInfin-
  4420.         ity. Such an AS external-LSA will still be used by the multicast
  4421.  
  4422.  
  4423.  
  4424. [Moy]                                                          [Page 79]
  4425.  
  4426. Internet Draft        Multicast Extensions to OSPF        September 1992
  4427.  
  4428.  
  4429.         routing calculation (see Section 12.2.4).
  4430.  
  4431.     14.10.  Next step in the flooding procedure
  4432.  
  4433.         This functionality is  described  in  Section  13.3  of  [OSPF].
  4434.         Group-membership-LSAs  are  specific  to a OSPF single area, and
  4435.         are flooded to multicast-capable routers only. When  flooding  a
  4436.         group-membership-LSA,  Section 13.3 of the OSPF specification is
  4437.         modified as follows: 1) The list of interfaces  examined  during
  4438.         flooding  (called  the  eligible  interfaces  in Section 13.3 of
  4439.         [OSPF]) is the set of all interfaces attaching to  Area  A  (the
  4440.         area  that  the  group-membership-LSA is received from), just as
  4441.         for router-LSAs, network-LSAs and summary-LSAs. 2) When  examin-
  4442.         ing  each  interface,  a  group-membership-LSA  is  added  to  a
  4443.         neighbor's link state retransmission list if and only if both a)
  4444.         Step 1d of [OSPF]'s Section 13.3 is reached for the neighbor and
  4445.         b) the neighbor is multicast-capable. The  neighbor's  multicast
  4446.         capability  is  discovered  during the Database Exchange process
  4447.         (see Section 14.4).
  4448.  
  4449.         Note that, since on broadcast networks Link  State  Updates  are
  4450.         sent  initially as multicasts, non-multicast routers may receive
  4451.         group-membership-LSAs. However, non-multicast routers will  sim-
  4452.         ply  drop the group-membership-LSAs, for reasons of unrecognized
  4453.         LS type (see Step 2 of [OSPF]'s Section  13).  Link  State  ack-
  4454.         nowledgments  for  group-membership-LSAs  are  not expected from
  4455.         non-multicast routers, and group-membership-LSAs will  never  be
  4456.         retransmitted  to  non-multicast routers, since the LSAs are not
  4457.         added to these routers' link  state  retransmission  lists  (see
  4458.         above paragraph).
  4459.  
  4460.         For more information on flooding group-membership-LSAs, see Sec-
  4461.         tion 10.2.
  4462.  
  4463.     14.11.  Virtual links
  4464.  
  4465.         This functionality is described in Section 15 of [OSPF]. When  a
  4466.         MOSPF  router  (i.e.,  multicast-capable router) is both an area
  4467.         border router and an endpoint of a virtual link whose other end-
  4468.         point is also multicast capable, the router must then also be an
  4469.         inter-area multicast forwarder. This is necessary to ensure that
  4470.         multicast datagrams will flow through the virtual link's transit
  4471.         area, from one  endpoint  to  the  other.  When  the  backbone's
  4472.         datagram  shortest-path  tree is constructed in Section 12.1, it
  4473.         is assumed that virtual links are capable of  forwarding  multi-
  4474.         cast datagrams whenever both endpoints are multicast-capable.
  4475.  
  4476.  
  4477.  
  4478.  
  4479.  
  4480. [Moy]                                                          [Page 80]
  4481.  
  4482. Internet Draft        Multicast Extensions to OSPF        September 1992
  4483.  
  4484.  
  4485. 15.  References
  4486.  
  4487.     [Bharath-Kumar] Bharath-Kumar, K. and Jaffe, J. M. Routing to multi-
  4488.                     ple destinations in Computer Networks. IEEE Transac-
  4489.                     tions on Communications, COM-31[3], March 1983.
  4490.  
  4491.     [Deering]       Deering, S. Multicast Routing in  Internetworks  and
  4492.                     Extended  LANs.   SIGCOMM  Summer  1988 Proceedings,
  4493.                     August 1988.
  4494.  
  4495.     [Deering2]      Deering, S. Multicast routing in a  datagram  inter-
  4496.                     network.  Stanford Technical Report STAN-CS-92-1415,
  4497.                     Department of Computer Science, Stanford University,
  4498.                     December 1991.
  4499.  
  4500.     [OSPF]          Moy, J. OSPF Version 2. RFC 1247. July 1991.
  4501.  
  4502.     [RFC 1075]      Waitzman, D., Partridge, C. and Deering, S. Distance
  4503.                     Vector   Multicast   Routing   Protocol.  RFC  1175,
  4504.                     November 1988.
  4505.  
  4506.     [RFC 1112]      Deering, S.E.Host extensions  for  IP  multicasting.
  4507.                     RFC 1112, May 1988.
  4508.  
  4509.     [RFC 1188]      Katz, D. Proposed standard for the  transmission  of
  4510.                     IP  datagrams  over FDDI networks. RFC 1188, October
  4511.                     1990.
  4512.  
  4513.     [RFC 1209]      Piscitello, D.M. Transmission of IP  datagrams  over
  4514.                     the SMDS Service.  RFC 1209, March 1991.
  4515.  
  4516.     [RFC 1340]      Reynolds, J. and Postel, J.  Assigned  Numbers.  RFC
  4517.                     1340, July 1992.
  4518.  
  4519.  
  4520.  
  4521.  
  4522.  
  4523.  
  4524.  
  4525.  
  4526.  
  4527.  
  4528.  
  4529.  
  4530.  
  4531.  
  4532.  
  4533.  
  4534.  
  4535.  
  4536. [Moy]                                                          [Page 81]
  4537.  
  4538. Internet Draft        Multicast Extensions to OSPF        September 1992
  4539.  
  4540.  
  4541. Footnotes
  4542.  
  4543.     [1]Actually, OSPF allows a separate link cost to be  configured  for
  4544.     each  TOS. MOSPF then potentially calculates separate paths for each
  4545.     TOS. For details, see Section 6.2.
  4546.  
  4547.     [2]We also assume in this section  that  the  pictured  multi-access
  4548.     networks provide data-link multicast/broadcast services.
  4549.  
  4550.     [3]Note that if N3 were a non-broadcast network,  router  RT3  would
  4551.     send  separate  copies of the datagram to routers RT1 and RT2. Since
  4552.     the IGMP protocol is not defined on  non-broadcast  networks,  there
  4553.     could in this case be no group B member attached to network N3. How-
  4554.     ever the multicast datagram would still be delivered to the group  B
  4555.     members attached to networks N1 and N2.
  4556.  
  4557.     [4]Actually, in MOSPF there is a separate forwarding cache entry for
  4558.     each combination of source, destination and TOS. For a discussion of
  4559.     TOS-based multicast routing, see Section 6.2.
  4560.  
  4561.     [5]The discussion in this section omits mention of the Backup Desig-
  4562.     nated  Router's  role  in the IGMP protocol. While the Backup Desig-
  4563.     nated Router does not send IGMP Host  Membership  Queries,  it  does
  4564.     listen  to  IGMP  Host  Membership  Reports, building "shadow" local
  4565.     group database entries in the process. These entries do not lead  to
  4566.     group-membership-LSAs,  nor  do they influence delivery of multicast
  4567.     datagrams, but are merely maintained to  ease  the  transition  from
  4568.     Backup Designated Router to Designated Router, should the Designated
  4569.     Router fail. See Sections 2.3.4, 9 and 10 for details.
  4570.  
  4571.     [6]One might imagine building all  possible  datagram  shortest-path
  4572.     trees up front. However, this might be expensive, both in router CPU
  4573.     time and in router memory. It is hoped that  building  the  datagram
  4574.     shortest-path  trees  on  demand  and  caching the results will ease
  4575.     demands on router resources by spreading out the calculations over a
  4576.     longer period of time.
  4577.  
  4578.     [7]It is possible that, due to the  existence  of  alternate  paths,
  4579.     several  different  shortest-path trees are available. MOSPF depends
  4580.     on all routers constructing the exact same shortest path  tree.  For
  4581.     that  reason, tie-breaking schemes have been implemented during tree
  4582.     construction to ensure that identical trees result. See  Section  12
  4583.     for more details.
  4584.  
  4585.     [8]Note that the expanding ring search yields the nearest server  in
  4586.     terms of hop count, not in terms of the OSPF metric.
  4587.  
  4588.     [9]This means that in MOSPF, just as in OSPF, the only kind of  link
  4589.  
  4590.  
  4591.  
  4592. [Moy]                                                          [Page 82]
  4593.  
  4594. Internet Draft        Multicast Extensions to OSPF        September 1992
  4595.  
  4596.  
  4597.     state  advertisement  that  can  be  flooded  between  areas  is the
  4598.     external-link-LSA.
  4599.  
  4600.     [10]A router indicates that it is an inter-area multicast  forwarder
  4601.     by  setting the appropriate flag in its router-LSA. See Section 14.6
  4602.     for details.
  4603.  
  4604.     [11]This is not quite true. As we shall see, any inter-AS  multicast
  4605.     forwarders  belonging  to  the  backbone are designated as wild-card
  4606.     multicast receivers. See Section 4.
  4607.  
  4608.     [12]As with inter-area multicast forwarders, inter-AS multicast for-
  4609.     warders  indicate that status by setting a flag in their router-LSA.
  4610.     See Section 14.6 for details.
  4611.  
  4612.     [13]It is possible that through the operation of an inter-AS  multi-
  4613.     cast  routing  protocol, router RT7 knows that it does not have con-
  4614.     nectivity to network N15 (even though it has unicast  connectivity).
  4615.     In  this  case,  RT7 would not advertise the external link to N15 as
  4616.     being multicast capable.
  4617.  
  4618.     [14]Synchronization of the IPMulticastForwarding interface parameter
  4619.     is  not  enforced by the MOSPF protocol, since it is not included in
  4620.     the contents of a MOSPF router's Hello packets.
  4621.  
  4622.     [15]Actually, when multiple IP networks have been  assigned  to  the
  4623.     same  physical  network, the first thing that needs to be done is to
  4624.     associate an IP network with the received  Host  Membership  Report.
  4625.     This  is  done in the same way that a receiving interface is associ-
  4626.     ated with a received multicast datagram; see Section 11.1.
  4627.  
  4628.     [16]For this reason when a transit network has  both  MOSPF  routers
  4629.     and  non-multicast  OSPF  routers  attached, care should be taken to
  4630.     ensure that a MOSPF router is elected Designated Router. This can be
  4631.     accomplished  through  proper  setting  of  the  routers' configured
  4632.     Router Priority.
  4633.  
  4634.     [17]Note that just because these advertisements exist  in  the  link
  4635.     state database, it does not mean that the Group G members are reach-
  4636.     able.  Reachability does not enter into the building of the  transit
  4637.     vertex  list, in order to simplify the calculation. This is a trade-
  4638.     off. As a result, some multicast datagrams may be forwarded  further
  4639.     than  necessary,  when  the  described  Group G members actually are
  4640.     unreachable.
  4641.  
  4642.     [18]Since the Designated Router controls flooding  on  the  network,
  4643.     this  is  another reason to ensure that a MOSPF router is elected as
  4644.     Designated Router.
  4645.  
  4646.  
  4647.  
  4648. [Moy]                                                          [Page 83]
  4649.  
  4650. Internet Draft        Multicast Extensions to OSPF        September 1992
  4651.  
  4652.  
  4653.     [19]In other words, group-membership-LSAs will never be  retransmit-
  4654.     ted to non-multicast routers.
  4655.  
  4656.     [20]This last step will not be necessary if the configuration guide-
  4657.     lines presented in Section 6.5 are followed.
  4658.  
  4659.     [21]The TOS 0 routing table entry is examined regardless of the  TOS
  4660.     specified by the multicast datagram.
  4661.  
  4662.     [22]This preference ordering is used in Step 5c of Section 12.2.
  4663.  
  4664.     [23]No attempt is made to match the links' two halves. See Step 5d.
  4665.  
  4666.     [24]However, a summary-LSA is eligible for matching even if the  MC-
  4667.     bit in its LS Options field is clear.
  4668.  
  4669.     [25]Costs may have both a Type 2 and a Type 1 component; the Type  2
  4670.     component is always most significant.
  4671.  
  4672.     [26]This case mirrors the SourceIntraArea candidate list initializa-
  4673.     tion in Section 12.2.1.
  4674.  
  4675.     [27]This case mirrors the SourceInterArea1 candidate list  initiali-
  4676.     zation in Section 12.2.2.
  4677.  
  4678.     [28]This case mirrors the SourceInterArea2 candidate list  initiali-
  4679.     zation in Section 12.2.3.
  4680.  
  4681.     [29]Note that selecting the upstream node in  this  manner  enforces
  4682.     the inter-area routing architecture outlined in Section 3.1. Namely,
  4683.     the multicast datagram is forwarded from the source area,  over  the
  4684.     backbone  and  then  into the non-backbone areas. This is similar to
  4685.     the "hub and spoke" architecture for unicast forwarding described in
  4686.     Section 3.2 of [OSPF].
  4687.  
  4688.     [30]This procedure seems backwards. One would expect that the TOS  X
  4689.     datagram  tree  would  be  built first. However, the SPF calculation
  4690.     must ensure that all routers participating in the forwarding of that
  4691.     datagram, both TOS-capable and non-TOS-capable, build the same tree.
  4692.     Since it is known that the non-TOS-capable routers will use the  TOS
  4693.     0  tree,  the  only  safe  way to use the TOS X tree is when you are
  4694.     guaranteed that the non-TOS-capable routers will decline to  forward
  4695.     the  datagram.  This  guarantee  is  clearly met when there are only
  4696.     TOS-capable routers on the TOS 0 datagram tree.
  4697.  
  4698.     [31]Indeed, there will also be those cases  where  the  router,  not
  4699.     being  on  a particular datagram shortest-path tree, will never have
  4700.     to calculate the particular tree, since the router will not  receive
  4701.  
  4702.  
  4703.  
  4704. [Moy]                                                          [Page 84]
  4705.  
  4706. Internet Draft        Multicast Extensions to OSPF        September 1992
  4707.  
  4708.  
  4709.     the datagram in the first place.
  4710.  
  4711.     [32]Group-membership-LSAs are not processed by non-multicast routers
  4712.     (see  Section  10.2). Also, if the Designated Router was not running
  4713.     the multicast extensions, multicast datagrams will not be  forwarded
  4714.     over  the network because its network-LSA will have its MC-bit clear
  4715.     (see Step 4a in Section 12.1).
  4716.  
  4717.  
  4718.  
  4719.  
  4720.  
  4721.  
  4722.  
  4723.  
  4724.  
  4725.  
  4726.  
  4727.  
  4728.  
  4729.  
  4730.  
  4731.  
  4732.  
  4733.  
  4734.  
  4735.  
  4736.  
  4737.  
  4738.  
  4739.  
  4740.  
  4741.  
  4742.  
  4743.  
  4744.  
  4745.  
  4746.  
  4747.  
  4748.  
  4749.  
  4750.  
  4751.  
  4752.  
  4753.  
  4754.  
  4755.  
  4756.  
  4757.  
  4758.  
  4759.  
  4760. [Moy]                                                          [Page 85]
  4761.  
  4762. Internet Draft        Multicast Extensions to OSPF        September 1992
  4763.  
  4764.  
  4765. A. Data Formats
  4766.  
  4767.     This section documents the format of MOSPF protocol packets and link
  4768.     state  advertisements  (LSAs). All changes and additions made to the
  4769.     OSPF version 2 data formats have been made in a  backward-compatible
  4770.     manner.  In other words, multicast routers running MOSPF can intero-
  4771.     perate with (non-multicast) OSPF version 2 routers  when  forwarding
  4772.     regular (unicast) IP data traffic.
  4773.  
  4774.     The MOSPF packet  formats  are  the  same  as  for  OSPF  version  2
  4775.     (described  in Appendix A of [OSPF]). One additional option has been
  4776.     added to the Options field that appears in OSPF Hello Packets, Data-
  4777.     base Description packets and all link state advertisements. This new
  4778.     option indicates the router's multicast  capability,  and  is  docu-
  4779.     mented  in  Section A.1.  The presence of this new option is ignored
  4780.     by all non-multicast routers.
  4781.  
  4782.     To support MOSPF, one of OSPF's link state advertisements  has  been
  4783.     modified,  and  a  new  link state advertisement has been added. The
  4784.     format of the router-LSA has  been  updated  (see  Section  A.2)  to
  4785.     include a new flag indicating whether the router is a wild-card mul-
  4786.     ticast receiver. A new link state advertisement, called  the  group-
  4787.     membership-LSA,  has  been added to pinpoint multicast group members
  4788.     in the link  state  database.  This  new  advertisement  is  neither
  4789.     flooded   nor   processed   by  non-multicast  routers.  The  group-
  4790.     membership-LSA is documented in Section A.3.
  4791.  
  4792.  
  4793.  
  4794.  
  4795.  
  4796.  
  4797.  
  4798.  
  4799.  
  4800.  
  4801.  
  4802.  
  4803.  
  4804.  
  4805.  
  4806.  
  4807.  
  4808.  
  4809.  
  4810.  
  4811.  
  4812.  
  4813.  
  4814.  
  4815.  
  4816. [Moy]                                                          [Page 86]
  4817.  
  4818. Internet Draft        Multicast Extensions to OSPF        September 1992
  4819.  
  4820.  
  4821. A.1 The options field
  4822.  
  4823.     The OSPF options field is present in OSPF  Hello  packets,  Database
  4824.     Description  packets  and all link state advertisements. The options
  4825.     field enables OSPF routers to  support  (or  not  support)  optional
  4826.     capabilities,  and  to  communicate  their capability level to other
  4827.     OSPF routers. Through this mechanism routers of differing  capabili-
  4828.     ties can be mixed within an OSPF routing domain.
  4829.  
  4830.     When used in Hello packets, the options field  allows  a  router  to
  4831.     reject  a  neighbor because of a capability mismatch. Alternatively,
  4832.     when capabilities are exchanged in Database  Description  packets  a
  4833.     router  can  choose  not  to forward certain LSA types to a neighbor
  4834.     because of its reduced functionality. Lastly,  listing  capabilities
  4835.     in LSAs allows routers to route traffic around reduced functionality
  4836.     routers, by excluding them from parts of the routing table  calcula-
  4837.     tion.
  4838.  
  4839.     Three capabilities are currently defined. For each  capability,  the
  4840.     effect  of  the  capability's  appearance (or lack of appearance) in
  4841.     Hello packets, Database Description packets and  link  state  adver-
  4842.     tisements  is  specified  below.  For  example, the external routing
  4843.     capability (below called the E-bit) has meaning only in  OSPF  Hello
  4844.     Packets.
  4845.  
  4846.                      +---+---+---+---+---+---+---+---+
  4847.                      | * | * | * | * | * |MC | E | T |
  4848.                      +---+---+---+---+---+---+---+-+-+
  4849.  
  4850.                           The OSPF options field
  4851.  
  4852.  
  4853.     o   T-bit. This describes the router's TOS capability. If the  T-bit
  4854.         is  reset,  then  the router supports only a single TOS (TOS 0).
  4855.         Such a router is also said to be incapable of  TOS-routing.  The
  4856.         absence  of the T-bit in a router links advertisement causes the
  4857.         router to be skipped when building a non-zero TOS  shortest-path
  4858.         tree.  In  other words, routers incapable of TOS routing will be
  4859.         avoided  as  much  as  possible  when  forwarding  data  traffic
  4860.         requesting a non-zero TOS. The absence of the T-bit in a summary
  4861.         link advertisement or an AS external  link  advertisement  indi-
  4862.         cates  that  the  advertisement is describing a TOS 0 route only
  4863.         (and not routes for non-zero TOS).
  4864.  
  4865.     o   E-bit. Type 5 AS external link advertisements  are  not  flooded
  4866.         into/through OSPF stub areas. The E-bit ensures that all members
  4867.         of a stub area agree on that area's configuration. The E-bit  is
  4868.         meaningful  only  in OSPF Hello packets. When the E-bit is reset
  4869.  
  4870.  
  4871.  
  4872. [Moy]                                                          [Page 87]
  4873.  
  4874. Internet Draft        Multicast Extensions to OSPF        September 1992
  4875.  
  4876.  
  4877.         in the Hello packet sent out a particular  interface,  it  means
  4878.         that the router will neither send nor receive type 5 AS external
  4879.         link state advertisements on that interface (in other words, the
  4880.         interface  connects to a stub area). Two routers will not become
  4881.         neighbors unless they agree on the state of the E-bit.
  4882.  
  4883.     o   MC-bit. The MC-bit describes the  multicast  capability  of  the
  4884.         various  pieces of the OSPF routing domain. When calculating the
  4885.         path of multicast datagrams, only those  link  state  advertise-
  4886.         ments  having  their  MC-bit set are used. In addition, a router
  4887.         uses the MC-bit in its Database Description packets in order  to
  4888.         tell  adjacent  neighbors whether the router will participate in
  4889.         the flooding of the new group-membership-LSAs.
  4890.  
  4891.  
  4892.  
  4893.  
  4894.  
  4895.  
  4896.  
  4897.  
  4898.  
  4899.  
  4900.  
  4901.  
  4902.  
  4903.  
  4904.  
  4905.  
  4906.  
  4907.  
  4908.  
  4909.  
  4910.  
  4911.  
  4912.  
  4913.  
  4914.  
  4915.  
  4916.  
  4917.  
  4918.  
  4919.  
  4920.  
  4921.  
  4922.  
  4923.  
  4924.  
  4925.  
  4926.  
  4927.  
  4928. [Moy]                                                          [Page 88]
  4929.  
  4930. Internet Draft        Multicast Extensions to OSPF        September 1992
  4931.  
  4932.  
  4933. A.2 Router-LSA
  4934.  
  4935.     An OSPF router originates a router-LSA into  each  of  its  attached
  4936.     areas.  The  router-LSA describes the state and cost of the router's
  4937.     interfaces to the area. The contents of the router-LSA are described
  4938.     in  detail  in  Section  A.4.2  of  [OSPF].  There  are flags in the
  4939.     router-LSA that indicate whether the router is  either  a)  an  area
  4940.     border  router  or  b) an AS boundary router or c) the endpoint of a
  4941.     virtual link. One more flag has been added  to  the  router-LSA  for
  4942.     MOSPF;  it  is  called  bit W below. This flag indicates whether the
  4943.     router receives all multicast datagrams  regardless  of  destination
  4944.     (i.e., is a wild-card multicast receiver).
  4945.  
  4946.         0                   1                   2                   3
  4947.         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  4948.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  4949.        |            LS age             |     Options   |       1       |
  4950.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  4951.        |                        Link State ID                          |
  4952.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  4953.        |                     Advertising Router                        |
  4954.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  4955.        |                     LS sequence number                        |
  4956.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  4957.        |         LS checksum           |             length            |
  4958.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  4959.        |    rtype      |        0      |            # links            |
  4960.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
  4961.        |                          Link ID                              | P
  4962.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ E
  4963.        |                         Link Data                             | R
  4964.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  4965.        |     Type      |     # TOS     |        TOS 0 metric           | #
  4966.      + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ L
  4967.      # |      TOS      |        0      |            metric             | I
  4968.      T +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ N
  4969.      O |                              ...                              | K
  4970.      S +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ S
  4971.      | |      TOS      |        0      |            metric             | |
  4972.      + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
  4973.        |                              ...                              |
  4974.  
  4975.                                 The router LSA
  4976.  
  4977.  
  4978.  
  4979.  
  4980.  
  4981.  
  4982.  
  4983.  
  4984. [Moy]                                                          [Page 89]
  4985.  
  4986. Internet Draft        Multicast Extensions to OSPF        September 1992
  4987.  
  4988.  
  4989.                      +---+---+---+---+---+---+---+---+
  4990.                      | * | * | * | * | W | V | E | B |
  4991.                      +---+---+---+---+---+---+---+-+-+
  4992.  
  4993.                                 The rtype field
  4994.  
  4995.     The following defines the flags found in the rtype field. Each  flag
  4996.     classifies the router by function:
  4997.  
  4998.     o   bit B. When set, the router is an area border router (B  is  for
  4999.         border). These routers forward unicast data traffic between OSPF
  5000.         areas.
  5001.  
  5002.     o   bit E. When set, the router is an AS boundary router (E  is  for
  5003.         external).  These  routers  forward unicast data traffic between
  5004.         Autonomous Systems.
  5005.  
  5006.     o   bit V. When set, the router is an endpoint of an active  virtual
  5007.         link  (V  is  for  virtual) which uses the described area as its
  5008.         transit area.
  5009.  
  5010.     o   bit W. When set, the router is a wild-card  multicast  receiver.
  5011.         These  routers  receive  all  multicast datagrams, regardless of
  5012.         destination.  Inter-area multicast forwarders and inter-AS  mul-
  5013.         ticast  forwarders are always wild-card multicast receivers (see
  5014.         Sections 3 and 4).
  5015.  
  5016.  
  5017.  
  5018.  
  5019.  
  5020.  
  5021.  
  5022.  
  5023.  
  5024.  
  5025.  
  5026.  
  5027.  
  5028.  
  5029.  
  5030.  
  5031.  
  5032.  
  5033.  
  5034.  
  5035.  
  5036.  
  5037.  
  5038.  
  5039.  
  5040. [Moy]                                                          [Page 90]
  5041.  
  5042. Internet Draft        Multicast Extensions to OSPF        September 1992
  5043.  
  5044.  
  5045. A.3 Group-membership-LSA
  5046.  
  5047.     Group-membership-LSAs are the  type  6  link  state  advertisements.
  5048.     Group-membership-LSAs  are  specific to a particular OSPF area. They
  5049.     are never flooded beyond  their  area  of  origination.  A  router's
  5050.     group-membership-LSA  for  Area  A indicates those directly attached
  5051.     networks belonging to Area A and containing members of a  particular
  5052.     multicast group. A router originates a group-membership-LSA for mul-
  5053.     ticast group D when the following conditions are met  for  at  least
  5054.     one directly attached network: 1) the router has been elected Desig-
  5055.     nated Router for the network and 2) at least one host on the network
  5056.     has joined Group D via the IGMP protocol.
  5057.  
  5058.     A router may also originate a group-membership-LSA for  Group  D  if
  5059.     the router itself has internal applications belonging to Group D. In
  5060.     addition, area border routers  originate  group-membership-LSAs  for
  5061.     the  backbone  area  when  there  are  group members in the router's
  5062.     attached non-backbone areas. See Section  10  for  more  information
  5063.     concerning the origination of group-membership-LSAs.
  5064.  
  5065.         0                   1                   2                   3
  5066.         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  5067.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5068.        |            LS age             |     Options   |       6       |
  5069.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5070.        |              Link State ID = Destination Group                |
  5071.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5072.        |                     Advertising Router                        |
  5073.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5074.        |                     LS sequence number                        |
  5075.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5076.        |         LS checksum           |             length            |
  5077.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5078.        |                        Vertex type                            |
  5079.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5080.        |                         Vertex ID                             |
  5081.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5082.        |                              ...                              |
  5083.  
  5084.                            The group-membership-LSA
  5085.  
  5086.  
  5087.     The group-membership-LSA consists of the standard 20-byte link state
  5088.     header  (see  Section A.4.1 of [OSPF]) followed by a list of transit
  5089.     vertices   to   label   with   the   multicast   destination.    The
  5090.     advertisement's  Link  State  ID is set to the multicast destination
  5091.     group address. There is no metric associated with the advertisement.
  5092.     Each  transit  vertex  is specified by its Vertex type and Vertex ID
  5093.  
  5094.  
  5095.  
  5096. [Moy]                                                          [Page 91]
  5097.  
  5098. Internet Draft        Multicast Extensions to OSPF        September 1992
  5099.  
  5100.  
  5101.     (see Section 16.1 of [OSPF] for an explanation of this terminology):
  5102.  
  5103.     o   Vertex type. Set equal to 1 for a router, and 2  for  a  transit
  5104.         network.   Note that the only router that may be included in the
  5105.         list is the Advertising Router itself.
  5106.  
  5107.     o   Vertex  ID.  For  router  vertices,  this  field  indicates  the
  5108.         router's  OSPF  router  ID.  For  transit network vertices, this
  5109.         field indicates the  IP  address  of  the  network's  Designated
  5110.         Router.  Note  that the link state advertisement associated with
  5111.         the transit vertex is the LSA whose LS type = Vertex type,  Link
  5112.         State  ID  =  Vertex  ID  and  Advertising  Router  = the group-
  5113.         membership-LSA's Advertising Router.
  5114.  
  5115.  
  5116.  
  5117.  
  5118.  
  5119.  
  5120.  
  5121.  
  5122.  
  5123.  
  5124.  
  5125.  
  5126.  
  5127.  
  5128.  
  5129.  
  5130.  
  5131.  
  5132.  
  5133.  
  5134.  
  5135.  
  5136.  
  5137.  
  5138.  
  5139.  
  5140.  
  5141.  
  5142.  
  5143.  
  5144.  
  5145.  
  5146.  
  5147.  
  5148.  
  5149.  
  5150.  
  5151.  
  5152. [Moy]                                                          [Page 92]
  5153.  
  5154. Internet Draft        Multicast Extensions to OSPF        September 1992
  5155.  
  5156.  
  5157. B. Configurable Constants
  5158.  
  5159.     This section documents the configurable parameters  used  by  OSPF's
  5160.     multicast  routing  extensions.  These parameters are in addition to
  5161.     the configurable constants used by the  base  OSPF  protocol  (docu-
  5162.     mented  in  Appendix  C  of [OSPF]). An implementation of MOSPF must
  5163.     provide the ability to set these parameters, either through  network
  5164.     management or some other means.
  5165.  
  5166.     B.1 Global parameters
  5167.  
  5168.         The following parameters apply to the router as a whole.
  5169.  
  5170.         o   Multicast capability. An indication of whether the router is
  5171.             running  MOSPF. If the router is running MOSPF, it will per-
  5172.             form the algorithms as set forth in this specification. Oth-
  5173.             erwise, the router is still able to run the basic OSPF algo-
  5174.             rithm (as set forth in [OSPF]), and will be able to  intero-
  5175.             perate with multicast capable routers (see Section 6.1) when
  5176.             forwarding regular (unicast) IP data traffic.
  5177.  
  5178.         o   Inter-area multicast  forwarder.  This  parameter  indicates
  5179.             whether  the router will forward multicast datagrams between
  5180.             OSPF areas. Such a router summarizes group membership infor-
  5181.             mation  to  the  backbone, and acts as a wild-card multicast
  5182.             receiver in all its attached non-backbone areas (see Section
  5183.             3.1).  Not all multicast-capable area border routers need be
  5184.             configured as  inter-area  multicast  forwarders.   However,
  5185.             whenever  both ends of a virtual link are multicast-capable,
  5186.             they must both be configured as  inter-area  multicast  for-
  5187.             warders  (see  Section  14.11).  By  default, all multicast-
  5188.             capable area border routers  are  configured  as  inter-area
  5189.             multicast forwarders.
  5190.  
  5191.         o   Inter-AS  multicast  forwarder.  This  parameter   indicates
  5192.             whether  the  router  forwards  multicast  datagrams between
  5193.             Autonomous Systems. Such a router acts as a wild-card multi-
  5194.             cast  receiver  in all attached areas (see Section 4). It is
  5195.             also assumed that an inter-AS multicast forwarder runs  some
  5196.             kind of inter-AS multicast routing algorithm.
  5197.  
  5198.     B.2 Router interface parameters
  5199.  
  5200.         The following parameters can be configured separately  for  each
  5201.         of the router's OSPF interfaces. Remember that an OSPF interface
  5202.         is the connection between the router and one of its attached  IP
  5203.         networks.   Note  that  the  IPMulticastForwarding  parameter is
  5204.         really a description of the attached network. As such, it should
  5205.  
  5206.  
  5207.  
  5208. [Moy]                                                          [Page 93]
  5209.  
  5210. Internet Draft        Multicast Extensions to OSPF        September 1992
  5211.  
  5212.  
  5213.         be  configured  identically  on all routers attached to a common
  5214.         network; otherwise incorrect routing of multicast datagrams  may
  5215.         result.
  5216.  
  5217.         o   IPMulticastForwarding. This configurable parameter indicates
  5218.             whether  IP multicasts should be forwarded over the attached
  5219.             network, and if so, how the forwarding should be  done.  The
  5220.             parameter can assume one of three possible values: disabled,
  5221.             data-link multicast and data-link unicast. When set to  dis-
  5222.             abled,  IP multicast datagrams will not be forwarded out the
  5223.             interface. When set to  data-link  multicast,  IP  multicast
  5224.             datagrams  will  be  forwarded as data-link multicasts. When
  5225.             set to data-link unicast, IP  multicast  datagrams  will  be
  5226.             forwarded  as data-link unicasts. The default value for this
  5227.             parameter is data-link multicast. The other two settings are
  5228.             for  use  in the special circumstances described in Sections
  5229.             6.3 and 6.4. When set to disabled or to  data-link  unicast,
  5230.             IGMP  group membership is not monitored on the attached net-
  5231.             work.
  5232.  
  5233.         o   IGMPPollingInterval. The  number  of  seconds  between  IGMP
  5234.             membership  queries  sent  out  this interface. A multicast-
  5235.             capable router sends IGMP membership queries  only  when  it
  5236.             has been elected Designated Router for the attached network.
  5237.             See [RFC 1112] for a discussion of this parameter's value.
  5238.  
  5239.         o   IGMP timeout. If no IGMP membership reports have been  heard
  5240.             on  an  attached  network for a particular multicast group A
  5241.             after this period of time, the entry [Group A, attached net-
  5242.             work] is deleted from the router's local group database. See
  5243.             Section 9 for more information.
  5244.  
  5245.  
  5246.  
  5247.  
  5248.  
  5249.  
  5250.  
  5251.  
  5252.  
  5253.  
  5254.  
  5255.  
  5256.  
  5257.  
  5258.  
  5259.  
  5260.  
  5261.  
  5262.  
  5263.  
  5264. [Moy]                                                          [Page 94]
  5265.  
  5266. Internet Draft        Multicast Extensions to OSPF        September 1992
  5267.  
  5268.  
  5269. C. Sample datagram shortest-path trees
  5270.  
  5271.     In MOSPF, all routers  must  calculate  exactly  the  same  datagram
  5272.     shortest-path trees. In order to ensure this in internetworks having
  5273.     redundant links, a number of tie-breakers were defined in the  MOSPF
  5274.     routing  table  calculation (see Steps 4 and 5c of Section 12.2, and
  5275.     Sections 12.2.4 and 12.2.7). This section  illustrates  the  use  of
  5276.     these tie-breakers on a sample topology.
  5277.  
  5278.     Three different examples are given. All examples use the same physi-
  5279.     cal  topology and the same set of OSPF interface costs (see the left
  5280.     side of Figure 14). The source of the datagram is always Host H1  on
  5281.     the  network  at the top of the figure (192.9.1.0), and the destina-
  5282.     tion group members are the two hosts labelled with Group Ma  at  the
  5283.     bottom  of the figure. The first case shows an example of intra-area
  5284.     multicast, while the remaining two cases show the influence of  OSPF
  5285.     areas on the path of a multicast datagram.
  5286.  
  5287.  
  5288.  
  5289.  
  5290.  
  5291.  
  5292.  
  5293.  
  5294.  
  5295.  
  5296.  
  5297.  
  5298.  
  5299.  
  5300.  
  5301.  
  5302.  
  5303.  
  5304.  
  5305.  
  5306.  
  5307.  
  5308.  
  5309.  
  5310.  
  5311.  
  5312.  
  5313.  
  5314.  
  5315.  
  5316.  
  5317.  
  5318.  
  5319.  
  5320. [Moy]                                                          [Page 95]
  5321.  
  5322. Internet Draft        Multicast Extensions to OSPF        September 1992
  5323.  
  5324.  
  5325. C.1 An intra-area tree
  5326.  
  5327.     The datagram shortest-path tree resulting from the  intra-area  case
  5328.     is  shown  on  the  right  of Figure 14. The root of the tree is the
  5329.     source network (192.9.1.0), and the leaves are the two routers  (RT3
  5330.     and  RT5) directly attached to the stub networks containing Group Ma
  5331.     members.
  5332.  
  5333.     There are equal-cost paths available to both group members. For  the
  5334.     group  member  on the left, the path could go either through network
  5335.     10.1.0.0 or through network 10.2.0.0. By the tie-breaking rules, the
  5336.     path  through  10.2.0.0  is  chosen  since it has the larger Network
  5337.     number (see Step 5c of Section 12.2).
  5338.  
  5339.     For the group member on the right, the path  could  go  either  over
  5340.     Network  10.2.0.0 or over the serial line connecting routers RT2 and
  5341.     RT3. The path over Network 10.2.0.0 is chosen  after  executing  two
  5342.     tie-breaking  rules.  First,  Network  10.2.0.0  is  placed  on  the
  5343.     shortest-path tree before  router  RT3  since  networks  are  always
  5344.     chosen  over  routers  (see  Step  4 of Section 12.2). Then, given a
  5345.  
  5346.                                  +--+
  5347.                                  |H1|
  5348.                                  +--+
  5349.                     Net 192.9.1.0  |
  5350.                          +------------------+
  5351.                             |            |
  5352.         +----------+        |1           |1
  5353.         |  Network |     8+---+        +---+            o 192.9.1.0
  5354.         | 10.1.0.0 |------|RT1|        |RT2|            |
  5355.         +----------+      +---+        +---+           0|
  5356.              |              |8          8|              |
  5357.             8|         +----------+      |8             o RT1
  5358.            +---+10     | Network  |  10+---+            |
  5359.            |RT4|-------| 10.2.0.0 |----|RT3|           8|
  5360.            +---+       +----------+    +---+            |
  5361.              |3                          |3             o 10.2.0.0
  5362.              |                           |             / \
  5363.         +---------+                  +-------+       0/   \0
  5364.              |                           |           /     \
  5365.            +--+                        +--+         o       o
  5366.            |Ma|                        |Ma|        RT4      RT3
  5367.            +--+                        +--+
  5368.  
  5369.  
  5370.                         Figure 14: An intra-area tree
  5371.  
  5372.  
  5373.  
  5374.  
  5375.  
  5376. [Moy]                                                          [Page 96]
  5377.  
  5378. Internet Draft        Multicast Extensions to OSPF        September 1992
  5379.  
  5380.  
  5381.     choice of either Network 10.2.0.0 or Router RT2 for RT3's parent  on
  5382.     the tree, Net 10.2.0.0 is again preferred since it is a network (see
  5383.     Step 5c of Section 12.2)
  5384.  
  5385.  
  5386.  
  5387.  
  5388.  
  5389.  
  5390.  
  5391.  
  5392.  
  5393.  
  5394.  
  5395.  
  5396.  
  5397.  
  5398.  
  5399.  
  5400.  
  5401.  
  5402.  
  5403.  
  5404.  
  5405.  
  5406.  
  5407.  
  5408.  
  5409.  
  5410.  
  5411.  
  5412.  
  5413.  
  5414.  
  5415.  
  5416.  
  5417.  
  5418.  
  5419.  
  5420.  
  5421.  
  5422.  
  5423.  
  5424.  
  5425.  
  5426.  
  5427.  
  5428.  
  5429.  
  5430.  
  5431.  
  5432. [Moy]                                                          [Page 97]
  5433.  
  5434. Internet Draft        Multicast Extensions to OSPF        September 1992
  5435.  
  5436.  
  5437. C.2 The effect of areas
  5438.  
  5439.     In Figure 15 below, the previous diagram has been  modified  by  the
  5440.     inclusion of OSPF areas. The datagram source is now part of the OSPF
  5441.     backbone (Area 0), while the rest of the topology is in Area  1.  In
  5442.     this case, since the datagram source and the group members belong to
  5443.     different areas, reverse costs are used when building the tree  (see
  5444.     Step  5b  of  Section 12.2). This actually eliminates the equal cost
  5445.     paths from the diagram, and leads to the Area 1  datagram  shortest-
  5446.     path tree on the right of Figure 15.
  5447.  
  5448.  
  5449.  
  5450.  
  5451.  
  5452.  
  5453.  
  5454.  
  5455.  
  5456.  
  5457.  
  5458.                                  +--+
  5459.                                  |H1|
  5460.                                  +--+
  5461.                     Net 192.9.1.0  |
  5462.                          +------------------+
  5463.       ..................... |            |
  5464.       . +----------+      . |1           |1            192.9.1.0
  5465.       . |  Network |     8+---+        +---+                o
  5466.       . | 10.1.0.0 |------|RT1|........|RT2|...            / \
  5467.       . +----------+      +---+        +---+  .          1/   \1
  5468.       .      |              |8          8|    .          /     \
  5469.       .     8|         +----------+      |8   .         o RT1   o RT2
  5470.       .    +---+10     | Network  |  10+---+  .         |        \
  5471.       .    |RT4|-------| 10.2.0.0 |----|RT3|  .        0|         \8
  5472.       .    +---+       +----------+    +---+  .         |          \
  5473.       .      |3                          |3   .         o 10.1.0.0  o
  5474.       .      |                           |    .         |          RT3
  5475.       . +---------+                  +-------+.        8|
  5476.       .      |                           |    .         |
  5477.       .    +--+                        +--+   .         o
  5478.       .    |Ma|                        |Ma|   .        RT4
  5479.       .    +--+     Area 1             +--+   .
  5480.       .........................................
  5481.  
  5482.                         Figure 15: The effect of areas
  5483.  
  5484.  
  5485.  
  5486.  
  5487.  
  5488. [Moy]                                                          [Page 98]
  5489.  
  5490. Internet Draft        Multicast Extensions to OSPF        September 1992
  5491.  
  5492.  
  5493. C.3 The effect of virtual links
  5494.  
  5495.     In Figure 16 below,  Network  10.1.0.0  has  been  configured  as  a
  5496.     separate  area  (Area  1), while everything else belongs to the OSPF
  5497.     backbone (Area 0). In addition, a virtual link has  been  configured
  5498.     through  Area  1, enhancing the backbone connectivity. In this case,
  5499.     both the source and the group members belong to the  same  area,  so
  5500.     forward  costs  are used. However, since virtual links are preferred
  5501.     over regular links (see Step  5c  of  Section  12.2),  the  backbone
  5502.     datagram   shortest-path  tree  uses  Network  10.1.0.0  instead  of
  5503.     10.2.0.0 on the path to the left group member.  This  leads  to  the
  5504.     tree on the right of Figure 16.
  5505.  
  5506.  
  5507.  
  5508.  
  5509.  
  5510.  
  5511.  
  5512.  
  5513.  
  5514.                                  +--+
  5515.                                  |H1|
  5516.                                  +--+
  5517.                     Net 192.9.1.0  |
  5518.       ................   +------------------+
  5519.       . +----------+ .     /1            |
  5520.       . |  Network |8.    /              |1
  5521.       . | 10.1.0.0 |-+---+             +---+            o 192.9.1.0
  5522.       . +----------+*|RT1|             |RT2|            |
  5523.       .     8|*******+---+             +---+           0|
  5524.       .Area1 |*VL    .    \8            8|              |
  5525.       .....+---+...... +----------+      |8             o RT1
  5526.            |RT4|10     | Network  |  10+---+           / \
  5527.            +---+-------| 10.2.0.0 |----|RT3|          /8  \8
  5528.              |         +----------+    +---+         /     \
  5529.              |3                          |3         o 10.1  o 10.2.0.0
  5530.              |                           |          |       |
  5531.         +---------+                  +-------+      |0      |0
  5532.              |                           |          |       |
  5533.            +--+                        +--+         o       o
  5534.            |Ma|                        |Ma|        RT4      RT3
  5535.            +--+                        +--+
  5536.  
  5537.  
  5538.                         Figure 14: An intra-area tree
  5539.  
  5540.  
  5541.  
  5542.  
  5543.  
  5544. [Moy]                                                          [Page 99]
  5545.  
  5546. Internet Draft        Multicast Extensions to OSPF        September 1992
  5547.  
  5548.  
  5549. Security Considerations
  5550.  
  5551.     Security issues are not discussed in this memo.
  5552.  
  5553. Author's Address
  5554.  
  5555.     John Moy
  5556.     Proteon, Inc.
  5557.     2 Technology Drive
  5558.     Westborough, MA 01581
  5559.     Phone: (508) 898-2800
  5560.     Email: jmoy@proteon.com
  5561.  
  5562.     This document expires in February 1993.
  5563.  
  5564.  
  5565.  
  5566.  
  5567.  
  5568.  
  5569.  
  5570.  
  5571.  
  5572.  
  5573.  
  5574.  
  5575.  
  5576.  
  5577.  
  5578.  
  5579.  
  5580.  
  5581.  
  5582.  
  5583.  
  5584.  
  5585.  
  5586.  
  5587.  
  5588.  
  5589.  
  5590.  
  5591.  
  5592.  
  5593.  
  5594.  
  5595.  
  5596.  
  5597.  
  5598.  
  5599.  
  5600. [Moy]                                                         [Page 100]
  5601.  
  5602.